This is an automated email from the ASF dual-hosted git repository.
maskit pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
from 04ee11ac10 Add unit tests for `Action` logic (#13332)
add f910eed635 Replace VLA with heap allocation in cachekey appendEncoded
add 79d2d8d320 Guard against size_t overflow in appendEncoded buffer sizing
add 48e967d88a Use ts::LocalBuffer instead of std::vector in appendEncoded
add 12f9ba56f5 Fix SNI/hostname comparison to check full string length
add 6375409940 Close connection if unneccesary H2 SETTINGS frame arrives
add eca51e9848 Reject Transfer-Encoding in HTTP/2 and HTTP/3 headers
add 24e04b756b Reject Transfer-Encoding where chunked is not the final
coding
add f4561a945a Fix out-of-bounds write in MIME obs-fold handling
add 4782ee1941 Enforce per-field size limit in HPACK/QPACK string decoding
add 6b5d7ce2cd regex_remap: Issue 46 - Overflow in url_len Leads to Stack
Overflow
add f994194566 Also address issue #48
add 4b971b5853 Reject oversized HPACK indexes
add 1096563661 Enforce 16-bit srv_offset invariant in HostDBInfo::assign
add c45594fb51 Document valid range for round_robin_max_count
add 8875ab4f14 Replace VLAs with ts::LocalBuffer in HostDB SRV handling
add 21882766f4 Fix OOB read in H2 get_received_frame_count
add d9bed82e5a Add bounds checks to DNS answer parsing before NS_GET macros
add 1283b37e38 cripts: Issue 31 - UB array write in remap instance
initialization
add 606862318a cripts: Issue 32 - Fix path traversal in File::Path::Rebase
add 422b978413 Fix integer overflow in MIME header parsing
add 0e8272dae3 Fix inverted condition for nonstandard method matching in
ACL filtering
add e8d92a51f2 Bound status code parsing to prevent integer overflow
add f733942cfa Avoid stack VLA in log filter wiping
add 416e5b1063 Avoid stack VLA in proxy protocol parsing
add 94255c1d27 Validate PROXY v1 port bounds
add 1960c44882 Guard txn_box stack allocations
add 554867ff80 Limit CONNECT body preclusion to successful responses
add e4bb476276 libswoc: Validate IPv6 hextet bounds
add 292679ef4a Reject overflowing XPACK integers
add d4775d17fd Bound outstanding HTTP/2 SETTINGS
add 2f196aa120 Fix inverted condition in SNI_IpAllow::TestClientSNIAction
add 7439e702ea Fix max_settings_per_minute condition
add 33b22d50d8 Update autest for SNI_IpAllow::TestClientSNIAction #188
changes
add 7ac47c2699 http2: Add tests for CRLF rejection in H2 header values
add 8a63f283cb Fix format issue in http2_crlf_header_validation
add 508c1bea26 rate_limit: Issue 106 - Fix queue bypass
add b3fa9f1b4d rate_limit: Issue 108 - Fix ip-rep UB writes
add d2b51c3476 compress: stop gzip transform after deflate() error
add a25b8419c1 Fix leaks of POST failures
add 1675a79dbd Add nullptr check before calling SSL_shutdown
add 8102a6b6e3 Fix length check of MethodMod:check
add 00dbca8188 iocore: tighten IOBuffer and AIO bounds checks
add c4f25dbddb stream_editor: allocate rules in contdata_t ctor
add 2eefa5db30 tscpp: hold intercept try-lock guard via shared mutex
add 276d050f37 URL: reject parsed ports outside uint16 range
add 70b577cae0 access_control: cap stack buffer for cookie base64 decode
add 7c0dfb03d5 rate_limit: Fix active counter underflow
add 71d40c137c Constrain prefetch relative paths
add 3414bd0ac1 Server Session: Make sure read_buffer is empty before
pooling a server session
add 6a4ecdad19 Keep OCSP map on init failure
add d8418bc78e Return evacuation bucket by reference not by value
add 2ce51ba62c Handle addressless PROXY headers in TLS
add 8a908a547d Guard outbound server_name SNI policy
add 45b1b89703 Verify H2 origin certs on session reuse
add b7918951e5 TLSSNISupport: own outbound_sni_policy bytes across config
reload
add 3cf6f23f67 Avoid signed tolower for name bytes
add af6a8ceb87 Reject oversized multiplexer chunks
add 19afc737bc Keep loop detection on outbound-transparent ports
add 3ac822dfc8 Set default value of
proxy.config.http2.default_buffer_water_mark to 32KB
add 888fb43005 Avoid UB when URL part is absent in URLImpl getters
add e8a732f076 HTTPHdr: fix use-after-free in destroy() leaving dangling
m_http
add a4b8f1bb86 ESI: cap HTTP request length to prevent size_t overflow
add efb5cd1e9b Invoke Continuation operator bool, not pointer-to-bool
add fae88bb9a6 Prevent unbounded recursion in host-down Range fallback
add 244e7edcba Add uds-perm/uds-user/uds-group port options
add f75672ec81 Fix ChunkHandler Flow Control
add 6a8c575f3f Fix FetchSM header block copying
add 2e45ff0917 Gate H2 reads during async hooks
add ca783e5d96 background_fetch: fix inverted size operator and broken
value wildcard
add 485f2415d9 Fix an integer overflow in HdrHeap
add 58c5130d00 lua: Add checks on server request hdr
add 92693e8eb6 Regex: add RE_FULL_MATCH flag, fix SNI partial-match policy
bypass
add 9da372d168 Combo handler: Reject empty Content-Type when allowlist is
configured
add 709443e870 Fix race in remap table refcount during reload
add ee78b0aff7 ESI: bound for nested esi html comment
add 6a0e83dd08 ja3_fingerprint: tighten encode_word_buffer bounds
add de6efd291c Use ParseRules::is_digit on raw network bytes in HTTP parser
add 48fb554d7a header_rewrite: Copy set-body-from response body with memcpy
add e92923f2aa Cap stale_response SIE buffering
add 0a1342e66a Guard parent mark-down on UNAVAILABLE_SERVER retry
add def5585312 xdebug: Cap X-Remap header length to actual buffer content
add a7e78add2f DNS: fix TCP length-prefix read under edge-triggered epoll
add c47966a824 Add admin-guide reference for writing secure regex rules
add 45c18fcd02 combo_handler.test.py: Fix empty type test output
add 6916a91bde test_proxy: Fix macOS link duplicates after FetchSM test
was added
add d8f74129cf Fixes HRW bridge issues, adds autests to Cripts
add fb3e2b76ad cripts: Fix undersized sockaddr in Geo IP lookup
add afc86337ea cripts: fix use-after-free in TSRemapDoRemap
add 904beeef1e cripts: Fix abort on duplicate query keys
add 387fcb9e9c header_rewrite: Fix cookie key over-read
add 0ca59c0eec doc: cover uri_signing cdniuc uri-regex in regex best
practices
add 92938c9873 Preserve dynamic-port flag across tunnel_route mapping ops
add 6cdadb24e5 HttpTunnel: Guard get_producer(VIO*) against dead producers
add c183dc4556 ts_lua: clear rri pointer in http_ctx after remap returns
add 4c60f2cadb ts_lua: use sockaddr_storage for ts_lua_fetch client address
add 20e47becdc header_rewrite: Guard SESSION/STATE access on null handle
add fc4eeea2be cripts: Fix global Client::URL MLoc leak
add 7606346cd8 cripts: Fix Bundle::Headers server-side header removal
add 4cb4f01f44 slice: Check for Integer underflow in firstblockbytes
add a9556e013e ParentSelection: increase size of mapWrapped array for
compat with strategies
add 29caef395c lua: Invalidate cached main_ctx when slot is outside
instance's range
add 1aae2795b3 DNS: Run HostEnt destructor on free to release SRV vector
heap
add c2231aac62 HttpSM: Stop tracking the fire-and-forget cache-delete
Action
add 704a2b1ef4 lua: Free transform context when client-hook VConn closes
add 5d5e7dbeba NextHopRoundRobin: update ring size for wrapping when
switching rings
add c780397d46 certifier: Reject unsafe SNI names
add 2648dd91f1 Drop H2 origin trailers for H1 clients
add 17d6c199cc http2: Reject CONTINUATION accumulation that overflows
header_blocks_length
add ab84929855 Honor number_of_redirections for plugin-initiated redirects
add 6f607cf9ac cache_range_requests: use std::string spill buffer for
building override cachekey
add 5b65055cb4 Reject header fields exceeding the uint16 field-length limit
add b4a40d1b13 webp_transform: bound buffered body and ImageMagick decode
add f1d8af5613 header_rewrite: Fix IPv6 CIDR masking for non-aligned
prefixes
add 601b548354 Implement SSRF validation for ESI include URLs
add 06a1eb4900 SSLNetVConnection: deregister async handshake eventfd on
connection teardown
add 8faf93d873 Strip Connection-listed headers per RFC 9110 ยง7.6.1
add 3b74fe43fc Test H2 control-character rejection
add 8a0da3ae92 http2: Defer HPACK dynamic-table updates until encoding
succeeds
add bb30f67ef5 authproxy: Don't assert on auth response with no header
fields
add b2d5f34a48 mgmt/rpc: create JSONRPC unix socket with intended mode
atomically
add 6cec6fc6b7 cache: Move openReadStartEarliest recursion counter off
CacheVC to fix UAF
add b0a4e435da Bound host header buffer
add 3a93693489 uri_signing: replace stack arrays with LocalBuffer
add 4020aa9769 http: reject chunked extension quoted-string values
containing CR or LF
add 67286efa86 ip_allow: add default CONNECT destination rules
add 6451527dfd Guard against missing delimiter in url_sig C= parameter
add 4ab63dbd93 master: Strip external @ headers before plugin hooks
add 1eb2e7b9fc Fix: cancel stale TLS accept timeouts so session acceptors
don't abort
add a074ce5aea regex_map: anchor host matching to the full hostname
add f474ebbf98 Invalidate dns_info.addr when claiming resolved without DNS
add 84415111ec PendingAction: Don't let CAS failure overwrite the caller's
action
add df60315ee2 parent_selection: Cap retries to one per window via
failedAt CAS
add ff6992ba34 compress: Wrap isspace so obs-text Content-Type bytes don't
trigger UB
add 810355d9e8 Expand URI normalization test coverage for userinfo handling
add 0257fc365a Guard remap against shutdown table teardown
add 258cf64e14 Revert "Guard remap against shutdown table teardown"
add 5119d9395f Guard remap against shutdown table teardown
add 043fb220e2 http: reject a bare LF chunked trailer terminator under
strict parsing
add 7d0b4350d9 Combo handler: Refactor Cache-Control parsing and update
gold test
add 42d1991f54 Fix null-deref in error_log_connection_failure for a DOWN
host
add 867f2b59e1 Fix tls_engine_abort autest referencing removed
async_engine plugin
add 7e22656032 Fix header_rewrite_bundle cookie rules matching the wrong
path
add 337816b3de http: drain request body on internally generated cache
responses
add 3dca68ba42 Fix chunked passthrough flow-control deadlock
(drop_chunked_trailers=0)
add 5224ac1d92 webp_transform: fix decode_limit test to send a matching
signature
add b2751584a6 Regex: preserve RE_ENDANCHORED semantics on PCRE2 < 10.30
add 9118cc86c9 esi: drop tsutil from esicore link deps to avoid plugin ODR
add b395a08e0c esi: add <sys/socket.h> for AF_INET/AF_INET6 in
IncludeUrlValidator
add c611f8052b esi: guard optarg null before setHostAllowRegex to satisfy
clang analyzer
add e7051e1583 connect_destination_acl: accept curl exit 7 for a refused
CONNECT
No new revisions were added by this update.
Summary of changes:
configs/ip_allow.yaml.default | 28 +-
doc/admin-guide/configuration/index.en.rst | 1 +
.../configuration/regex-best-practices.en.rst | 423 +++++++++++++++++
doc/admin-guide/files/cache.config.en.rst | 12 +-
doc/admin-guide/files/ip_allow.yaml.en.rst | 64 ++-
doc/admin-guide/files/parent.config.en.rst | 8 +-
doc/admin-guide/files/records.yaml.en.rst | 67 ++-
doc/admin-guide/files/remap.config.en.rst | 14 +
doc/admin-guide/files/sni.yaml.en.rst | 10 +
doc/admin-guide/files/splitdns.config.en.rst | 9 +-
doc/admin-guide/layer-4-routing.en.rst | 9 +
doc/admin-guide/plugins/esi.en.rst | 35 ++
doc/admin-guide/plugins/geoip_acl.en.rst | 7 +
doc/admin-guide/plugins/maxmind_acl.en.rst | 8 +-
doc/admin-guide/plugins/uri_signing.en.rst | 23 +-
doc/admin-guide/plugins/url_sig.en.rst | 8 +
doc/admin-guide/plugins/webp_transform.en.rst | 45 +-
.../api/functions/TSMimeHdrFieldCreate.en.rst | 6 +
.../api/functions/TSMimeHdrFieldNameSet.en.rst | 11 +
.../functions/TSMimeHdrFieldValueStringSet.en.rst | 4 +
.../cripts/cripts-connections.en.rst | 2 +-
doc/developer-guide/cripts/cripts-headers.en.rst | 7 +
.../plugins/http-headers/mime-headers.en.rst | 20 +
include/cripts/Bundles/Headers.hpp | 10 +-
include/cripts/Connections.hpp | 6 +-
include/cripts/Epilogue.hpp | 10 +-
include/cripts/Urls.hpp | 19 +-
include/iocore/eventsystem/IOBuffer.h | 9 +-
include/iocore/net/AcceptOptions.h | 6 +
include/iocore/net/NetVConnection.h | 22 +-
include/iocore/net/TLSSNISupport.h | 23 +-
include/proxy/ControlBase.h | 1 +
include/proxy/ParentSelection.h | 36 +-
include/proxy/ProxySession.h | 7 +
include/proxy/ProxyTransaction.h | 4 +
include/proxy/ReverseProxy.h | 11 +-
include/proxy/hdrs/HTTP.h | 47 +-
include/proxy/hdrs/MIME.h | 34 +-
include/proxy/hdrs/XPACK.h | 2 +-
include/proxy/http/HttpConfig.h | 3 +
include/proxy/http/HttpSM.h | 10 +-
include/proxy/http/HttpSessionManager.h | 5 +-
include/proxy/http/HttpTransact.h | 65 +--
include/proxy/http/HttpTunnel.h | 54 ++-
include/proxy/http/remap/UrlRewrite.h | 24 +-
include/proxy/http2/HPACK.h | 12 +-
include/proxy/http2/HTTP2.h | 14 +-
include/proxy/http2/Http2ConnectionState.h | 64 ++-
include/proxy/http2/Http2Stream.h | 14 +-
include/proxy/http3/QPACK.h | 4 +-
include/records/RecHttp.h | 8 +
include/tscore/PendingAction.h | 8 +-
include/tscore/X509HostnameValidator.h | 5 +-
include/tsutil/AtomicSharedPtr.h | 84 ++++
include/tsutil/Convert.h | 7 +-
include/tsutil/Regex.h | 8 +-
lib/swoc/src/swoc_ip.cc | 5 +-
lib/swoc/unit_tests/test_ip.cc | 5 +
plugins/authproxy/authproxy.cc | 1 -
plugins/background_fetch/configs.cc | 6 +-
plugins/background_fetch/rules.cc | 8 +-
.../cache_range_requests/cache_range_requests.cc | 57 ++-
plugins/cachekey/cachekey.cc | 12 +-
plugins/certifier/certifier.cc | 47 +-
plugins/compress/configuration.cc | 18 +-
plugins/compress/gzip_compress.cc | 3 +-
plugins/esi/CMakeLists.txt | 2 +-
plugins/esi/combo_handler.cc | 44 +-
plugins/esi/combo_handler_utils.cc | 141 ++++++
.../esi/combo_handler_utils.h | 29 +-
plugins/esi/esi.cc | 103 ++++-
plugins/esi/fetcher/HttpDataFetcherImpl.cc | 18 +-
plugins/esi/lib/CMakeLists.txt | 9 +
plugins/esi/lib/EsiProcessor.cc | 105 ++++-
plugins/esi/lib/EsiProcessor.h | 14 +-
plugins/esi/lib/IncludeUrlValidator.cc | 441 ++++++++++++++++++
plugins/esi/lib/IncludeUrlValidator.h | 86 ++++
plugins/esi/test/CMakeLists.txt | 20 +-
plugins/esi/test/combo_handler_utils_test.cc | 197 ++++++++
plugins/esi/test/include_url_validator_test.cc | 206 +++++++++
plugins/experimental/access_control/plugin.cc | 22 +-
plugins/experimental/jax_fingerprint/ja3/test.cc | 55 +++
plugins/experimental/jax_fingerprint/ja3/utils.cc | 12 +-
plugins/experimental/rate_limit/ip_reputation.cc | 4 +-
plugins/experimental/rate_limit/sni_selector.cc | 6 +-
plugins/experimental/rate_limit/txn_limiter.cc | 2 +-
plugins/experimental/stale_response/BodyData.h | 4 +
.../experimental/stale_response/ServerIntercept.cc | 1 +
.../experimental/stale_response/stale_response.cc | 202 +++++++-
.../experimental/stale_response/stale_response.h | 2 +
.../experimental/stream_editor/stream_editor.cc | 2 +-
.../experimental/txn_box/plugin/src/Modifier.cc | 11 +-
plugins/experimental/txn_box/plugin/src/ts_util.cc | 20 +-
plugins/experimental/uri_signing/normalize.cc | 50 +-
.../uri_signing/unit_tests/uri_signing_test.cc | 216 +++++++--
plugins/experimental/url_sig/url_sig.cc | 8 +
plugins/header_rewrite/cidr.h | 68 +++
plugins/header_rewrite/conditions.cc | 16 +-
plugins/header_rewrite/conditions.h | 2 +-
plugins/header_rewrite/header_rewrite_test.cc | 86 +++-
plugins/header_rewrite/operators.cc | 24 +-
plugins/header_rewrite/statement.h | 9 +-
plugins/ja3_fingerprint/ja3_fingerprint.cc | 4 +-
plugins/ja3_fingerprint/ja3_utils.cc | 12 +-
plugins/ja3_fingerprint/test_utils.cc | 55 +++
plugins/lua/ts_lua.cc | 18 +-
plugins/lua/ts_lua_common.h | 1 +
plugins/lua/ts_lua_fetch.cc | 33 +-
plugins/lua/ts_lua_server_request.cc | 4 +
plugins/lua/ts_lua_transform.cc | 5 +
plugins/lua/ts_lua_util.cc | 4 +-
plugins/multiplexer/CMakeLists.txt | 7 +
plugins/multiplexer/chunk-decoder.cc | 81 +++-
plugins/multiplexer/chunk-decoder.h | 16 +-
plugins/multiplexer/fetcher.h | 35 +-
.../multiplexer/unit_tests/test_chunk_decoder.cc | 155 +++++++
plugins/prefetch/CMakeLists.txt | 1 +
plugins/prefetch/fetch.cc | 15 +-
plugins/prefetch/fetch.h | 4 +-
plugins/prefetch/path.cc | 190 ++++++++
plugins/prefetch/path.h | 63 +++
plugins/prefetch/plugin.cc | 45 +-
plugins/prefetch/test/CMakeLists.txt | 4 +
plugins/prefetch/test/test_path.cc | 67 +++
plugins/regex_remap/regex_remap.cc | 38 +-
plugins/slice/server.cc | 23 +-
plugins/webp_transform/ImageTransform.cc | 313 +++++++++++--
plugins/xdebug/xdebug.cc | 9 +-
src/api/InkAPI.cc | 33 +-
src/cripts/Bundles/HRWBridge.cc | 85 ++--
src/cripts/Bundles/Headers.cc | 16 +-
src/cripts/Connections.cc | 7 +-
src/cripts/Context.cc | 6 +-
src/cripts/Files.cc | 11 +-
src/cripts/Geo.cc | 2 +-
src/cripts/Instance.cc | 2 +-
src/cripts/Urls.cc | 25 +-
src/iocore/aio/AIO.cc | 3 +-
src/iocore/cache/CacheRead.cc | 31 +-
src/iocore/cache/CacheVC.h | 1 -
src/iocore/cache/StripeSM.h | 4 +-
src/iocore/cache/unit_tests/test_Stripe.cc | 30 ++
src/iocore/dns/CMakeLists.txt | 6 +-
src/iocore/dns/DNS.cc | 72 +--
src/iocore/{net/UDPIOEvent.cc => dns/HostEnt.cc} | 12 +-
src/iocore/dns/P_DNSConnection.h | 16 +-
.../iocore/dns/unit_tests}/CMakeLists.txt | 30 +-
src/iocore/dns/unit_tests/test_HostEnt.cc | 102 +++++
src/iocore/eventsystem/IOBuffer.cc | 14 +-
src/iocore/eventsystem/unit_tests/test_IOBuffer.cc | 90 ++++
src/iocore/hostdb/HostDB.cc | 9 +-
src/iocore/hostdb/HostDBInfo.cc | 4 +-
src/iocore/net/CMakeLists.txt | 3 +
src/iocore/net/NetVConnection.cc | 15 +-
src/iocore/net/P_SSLClientUtils.h | 6 +-
src/iocore/net/P_SSLNetVConnection.h | 2 +
src/iocore/net/ProxyProtocol.cc | 38 +-
src/iocore/net/SNIActionPerformer.cc | 19 +-
src/iocore/net/SSLClientUtils.cc | 67 ++-
src/iocore/net/SSLNetVConnection.cc | 52 ++-
src/iocore/net/SSLNextProtocolAccept.cc | 2 +
src/iocore/net/SSLSNIConfig.cc | 7 +-
src/iocore/net/Server.cc | 7 +-
src/iocore/net/unit_tests/sni_conf_test.yaml | 8 +
src/iocore/net/unit_tests/test_OCSPStapling.cc | 105 +++++
src/iocore/net/unit_tests/test_ProxyProtocol.cc | 24 +
.../net/unit_tests/test_SSLCertLookup.cc} | 52 +--
.../unit_tests/test_SSLNetVConnectionAsyncEp.cc | 132 ++++++
src/iocore/net/unit_tests/test_SSLSNIConfig.cc | 134 ++++++
src/iocore/net/unit_tests/test_YamlSNIConfig.cc | 2 +-
src/mgmt/rpc/server/IPCSocketServer.cc | 29 +-
src/mgmt/rpc/server/unit_tests/test_rpcserver.cc | 40 ++
src/proxy/ControlBase.cc | 5 +-
src/proxy/FetchSM.cc | 42 +-
src/proxy/ParentConsistentHash.cc | 13 +-
src/proxy/ParentRoundRobin.cc | 18 +-
src/proxy/ProxyTransaction.cc | 6 +
src/proxy/ReverseProxy.cc | 68 ++-
src/proxy/hdrs/HTTP.cc | 54 ++-
src/proxy/hdrs/HdrHeap.cc | 14 +-
src/proxy/hdrs/HeaderValidator.cc | 3 +-
src/proxy/hdrs/MIME.cc | 268 +++++------
src/proxy/hdrs/URL.cc | 42 +-
src/proxy/hdrs/XPACK.cc | 17 +-
src/proxy/hdrs/unit_tests/test_HdrHeap.cc | 44 ++
src/proxy/hdrs/unit_tests/test_Hdrs.cc | 275 +++++++++--
src/proxy/hdrs/unit_tests/test_HeaderValidator.cc | 13 +
src/proxy/hdrs/unit_tests/test_URL.cc | 142 ++++++
src/proxy/hdrs/unit_tests/test_XPACK.cc | 105 ++++-
src/proxy/hdrs/unit_tests/test_mime.cc | 373 +++++++++++++++
src/proxy/http/ConnectingEntry.cc | 25 +-
src/proxy/http/Http1ClientSession.cc | 7 +
src/proxy/http/HttpConfig.cc | 52 ++-
src/proxy/http/HttpProxyServerMain.cc | 3 +
src/proxy/http/HttpSM.cc | 151 ++++--
src/proxy/http/HttpSessionAccept.cc | 6 +-
src/proxy/http/HttpSessionManager.cc | 50 +-
src/proxy/http/HttpTransact.cc | 192 +++++++-
src/proxy/http/HttpTransactHeaders.cc | 28 ++
src/proxy/http/HttpTunnel.cc | 276 +++++++++--
src/proxy/http/remap/NextHopConsistentHash.cc | 6 +-
src/proxy/http/remap/NextHopRoundRobin.cc | 18 +-
src/proxy/http/remap/RemapConfig.cc | 9 +-
src/proxy/http/remap/RemapProcessor.cc | 16 +-
src/proxy/http/remap/UrlRewrite.cc | 6 +-
src/proxy/http/unit_tests/CMakeLists.txt | 2 +
src/proxy/http/unit_tests/test_ChunkedHandler.cc | 510 +++++++++++++++++++++
src/proxy/http/unit_tests/test_HttpTransact.cc | 226 +++++++++
.../http/unit_tests/test_HttpTransactHeaders.cc | 352 ++++++++++++++
src/proxy/http2/HPACK.cc | 51 ++-
src/proxy/http2/HTTP2.cc | 5 +-
src/proxy/http2/Http2ClientSession.cc | 17 +-
src/proxy/http2/Http2ConnectionState.cc | 196 ++++++--
src/proxy/http2/Http2ServerSession.cc | 17 +-
src/proxy/http2/Http2SessionAccept.cc | 9 +-
src/proxy/http2/Http2Stream.cc | 56 ++-
src/proxy/http2/test_HPACK.cc | 9 +-
src/proxy/http2/unit_tests/test_HTTP2.cc | 151 ++++++
.../http2/unit_tests/test_HpackIndexingTable.cc | 271 ++++++++++-
src/proxy/http3/Http3Session.cc | 19 +-
src/proxy/http3/QPACK.cc | 20 +-
src/proxy/http3/test/test_QPACK.cc | 7 +-
src/proxy/logging/LogFilter.cc | 45 +-
src/proxy/unit_tests/CMakeLists.txt | 3 +-
src/proxy/unit_tests/stub.cc | 12 +-
src/proxy/unit_tests/test_ControlBase.cc | 99 ++++
src/proxy/unit_tests/test_FetchSM.cc | 93 ++++
src/records/RecHttp.cc | 62 +++
src/records/RecordsConfig.cc | 6 +-
src/traffic_cache_tool/CacheScan.cc | 8 +-
src/traffic_server/traffic_server.cc | 3 +
src/tscore/CMakeLists.txt | 1 +
src/tscore/X509HostnameValidator.cc | 16 +-
src/tscore/unit_tests/test_PendingAction.cc | 91 ++++
.../unit_tests/test_X509HostnameValidator.cc | 32 +-
src/tscpp/api/InterceptPlugin.cc | 21 +-
src/tscpp/api/TransformationPlugin.cc | 2 +-
src/tsutil/Regex.cc | 74 ++-
src/tsutil/unit_tests/test_Regex.cc | 112 +++++
tests/CMakeLists.txt | 1 +
tests/fuzzing/fuzz_hpack.cc | 4 +-
.../at_headers.test.py} | 9 +-
.../gold_tests/at_headers}/plugins/CMakeLists.txt | 2 +-
.../at_headers/plugins/at_header_probe.cc | 220 +++++++++
.../at_headers/replay/at_headers.replay.yaml | 161 +++++++
tests/gold_tests/autest-site/ats_replay.test.ext | 62 ++-
tests/gold_tests/autest-site/min_cfg/ip_allow.yaml | 20 +
.../gold_tests/autest-site/trafficserver.test.ext | 41 ++
.../cache/cache_corrupt_recursive_uaf.test.py | 127 +++++
.../cache/host_down_range_recursion.test.py | 81 ++++
.../host_down_range_recursion_prime.replay.yaml} | 31 +-
.../host_down_range_recursion_range.replay.yaml | 52 +++
.../chunked_encoding/chunk_extension_client.py | 106 +++++
.../chunk_extension_quoted_string.test.py | 84 ++++
.../chunked_encoding/chunk_trailer_bare_lf.test.py | 86 ++++
.../chunked_encoding/chunk_trailer_client.py | 104 +++++
.../chunked_flow_control.test.py} | 8 +-
.../chunked_not_last.test.py} | 8 +-
.../chunk_extension_quoted_string.replay.yaml} | 43 +-
.../replays/chunk_trailer_bare_lf.replay.yaml} | 44 +-
.../replays/chunked_h1_flow_control.replay.yaml | 138 ++++++
.../replays/chunked_h2_flow_control.replay.yaml | 148 ++++++
.../replays/chunked_not_last.replay.yaml | 206 +++++++++
.../chunked_passthru_flow_control.replay.yaml | 161 +++++++
tests/gold_tests/connect/connect.test.py | 3 +
.../connect/connect_parent_error_body.test.py | 72 +++
.../connect/h2_malformed_request_logging.test.py | 1 +
.../connect/malformed_h2_request_client.py | 63 ++-
.../replays/connect_parent_error_body.replay.yaml | 115 +++++
tests/gold_tests/cripts/cripts_bundle.replay.yaml | 325 +++++++++++++
tests/gold_tests/cripts/cripts_bundle.test.py | 49 ++
tests/gold_tests/cripts/files/bundle_headers.cript | 60 +++
tests/gold_tests/cripts/files/direct_headers.cript | 65 +++
.../cripts/files/server_bundle_headers.cript | 45 ++
.../clients/h2_max_settings_per_minute.py} | 83 +---
.../gold_tests/h2/clients/h2_settings_ack_stall.py | 184 ++++++++
tests/gold_tests/h2/h1_trailer_client.py | 86 ++++
.../gold_tests/h2/h2_origin_cert_reverify.test.py | 78 ++++
.../h2_origin_trailers_h1.replay.yaml} | 34 +-
tests/gold_tests/h2/h2_origin_trailers_h1.test.py | 94 ++++
tests/gold_tests/h2/http2.test.py | 30 ++
.../h2/http2_crlf_header_validation.test.py | 97 ++++
tests/gold_tests/h2/http2_flow_control.test.py | 48 ++
.../h2/http2_txn_start_read_gate.test.py | 63 +++
.../replay/http2_settings_ack_stall.replay.yaml} | 33 +-
.../http2_txn_start_read_gate.replay.yaml} | 49 +-
...ue.yaml => replay_h2_origin_cert_reverify.yaml} | 42 +-
.../headers/clients/oversized_field_h2_client.py | 151 ++++++
.../gold_tests/headers/hopbyhop_connection.test.py | 16 +-
.../oversized_field.test.py} | 15 +-
.../gold_tests/headers/oversized_field_h2.test.py | 142 ++++++
.../headers/replay/oversized_field.replay.yaml | 90 ++++
.../replay/oversized_field_h2.replay.yaml} | 74 ++-
...replay.yaml => hopbyhop_connection.replay.yaml} | 108 +++--
.../ip_allow/connect_destination_acl.test.py | 174 +++++++
.../strategies_ch5.test.py} | 142 +++---
.../gold_tests/next_hop/strategies_ch5/trace.gold | 192 ++++++++
.../per_server_connection_max.test.py | 1 +
.../parent_retry_non_retryable_post.test.py} | 12 +-
.../parent_retry_non_retryable_post.replay.yaml | 90 ++++
.../delete_maxforwards_body_desync.test.py | 89 ++++
.../pipeline/delete_maxfwd_noop_drain.test.py | 89 ++++
tests/gold_tests/pipeline/desync_client.py | 112 +++++
tests/gold_tests/pipeline/desync_client_miss.py | 45 ++
tests/gold_tests/pipeline/desync_server.py | 97 ++++
tests/gold_tests/pipeline/noop_keepalive.test.py | 92 ++++
tests/gold_tests/pipeline/noop_keepalive_client.py | 57 +++
.../cache_range_requests.test.py | 36 ++
.../pluginTest/certifier/certifier.test.py | 119 +++++
...{https.replay.yaml => https-no-sni.replay.yaml} | 4 +-
...eplay.yaml => https-path-traversal.replay.yaml} | 6 +-
.../pluginTest/combo_handler/combo_handler.test.py | 53 ++-
.../{tr2.gold => cache_control_aggregation.gold} | 7 +-
.../{tr2.gold => max_age_zero.gold} | 7 +-
.../combo_handler_files/{tr1.gold => tr3.gold} | 0
.../compress-content-type-params.replay.yaml | 28 ++
.../esi/esi_nested_html_comment.replay.yaml} | 36 +-
.../pluginTest/esi/esi_nested_html_comment.test.py | 156 +++++++
.../esi_nested_html_comment_reject.replay.yaml} | 38 +-
.../pluginTest/esi/esi_request_size_cap.test.py | 91 ++++
.../pluginTest/esi/esi_ssrf_validate.replay.yaml | 164 +++++++
.../pluginTest/esi/esi_ssrf_validate.test.py | 111 +++++
.../header_rewrite_bundle.replay.yaml | 380 ++++++++++++++-
.../header_rewrite_set_body_from.test.py | 44 ++
.../rules/{rule_empty_body.conf => rule_cidr.conf} | 11 +-
.../header_rewrite/rules/rule_cookie.conf | 68 +++
.../header_rewrite/rules/rule_session_vars.conf | 39 +-
.../rules/rule_set_body_from_remap.conf | 4 +
.../pluginTest/lua/fetch_ipv6_cliaddr.lua | 37 +-
...hook.test.py => lua_fetch_ipv6_cliaddr.test.py} | 42 +-
.../pluginTest/lua/lua_remap_after_hook.test.py | 55 +++
.../gold_tests/pluginTest/lua/remap_after_hook.lua | 23 +-
.../pluginTest/multiplexer/multiplexer.test.py | 87 ++++
.../multiplexer_invalid_chunk_copy.replay.yaml} | 24 +-
...multiplexer_invalid_chunk_original.replay.yaml} | 37 +-
.../prefetch_query_path_traversal.replay.yaml | 165 +++++++
.../prefetch_query_path_traversal.test.py} | 8 +-
.../pluginTest/rate_limit/concurrent_reject.sh | 28 +-
.../pluginTest/rate_limit/independent_limiters.sh | 29 +-
.../rate_limit/queue_bypass_regression.sh | 77 ++++
.../pluginTest/rate_limit/queue_drain.sh | 44 ++
.../pluginTest/rate_limit/rate_limit.test.py | 132 ++++++
.../pluginTest/rate_limit/rate_limit_iprep.test.py | 120 +++++
.../pluginTest/rate_limit/rate_limit_sni.test.py | 121 +++++
.../pluginTest/rate_limit/retry_after.sh | 26 +-
.../pluginTest/rate_limit/sequential_pass.sh | 27 +-
.../redirect_limit/redirect_limit.test.py | 134 ++++++
tests/gold_tests/pluginTest/slice/shrink_origin.py | 134 ++++++
.../pluginTest/slice/slice_content_shrink.test.py | 94 ++++
.../stale_response/stale_response.test.py | 18 +
....yaml => stale_response_max_memory.replay.yaml} | 51 ++-
.../pluginTest/traffic_dump/traffic_dump.test.py | 1 +
.../pluginTest/tsapi/test_TSHttpSsnInfo.cc | 7 +
.../pluginTest/tsapi/test_TSHttpSsnInfo.test.py | 2 +
tests/gold_tests/pluginTest/url_sig/url_sig.gold | 3 +
.../gold_tests/pluginTest/url_sig/url_sig.test.py | 30 ++
.../replay/webp_chunked_cap.replay.yaml} | 28 +-
.../webp_transform_cache_refused.test.py | 90 ++++
.../webp_transform_chunked_cap.test.py | 74 +++
.../webp_transform_decode_limit.test.py | 117 +++++
.../webp_transform_max_buffer_size.test.py | 108 +++++
.../webp_transform/webp_transform_size_cap.test.py | 121 +++++
.../x_remap_long_url/x_remap_long_url.replay.yaml} | 80 +---
.../x_remap_long_url/x_remap_long_url.test.py} | 20 +-
.../proxy_protocol/proxy_protocol.test.py | 1 +
tests/gold_tests/remap/regex_map_anchor.test.py | 35 ++
.../remap/replay/regex_map_anchor.replay.yaml | 204 +++++++++
.../timeout/tunnel_active_timeout.test.py | 1 +
tests/gold_tests/tls/gold/tls-tunnel-metrics.gold | 6 +-
.../tls/proxy_protocol_addressless.test.py | 87 ++++
tests/gold_tests/tls/proxy_protocol_client.py | 31 +-
.../outbound_sni_server_name_plain.replay.yaml | 79 ++++
...y.yaml => tls_accept_timeout_crash.replay.yaml} | 32 +-
.../tls/tls_accept_timeout_crash.test.py | 81 ++++
tests/gold_tests/tls/tls_engine_abort.py | 64 +++
tests/gold_tests/tls/tls_engine_abort.test.py | 119 +++++
tests/gold_tests/tls/tls_forward_nonhttp.test.py | 1 +
.../tls/tls_outbound_sni_server_name_plain.test.py | 25 +
.../tls/tls_partial_blind_tunnel.test.py | 1 +
tests/gold_tests/tls/tls_sni_host_policy.test.py | 99 ++++
tests/gold_tests/tls/tls_sni_ip_allow.test.py | 1 +
tests/gold_tests/tls/tls_sni_with_port.test.py | 1 +
tests/gold_tests/tls/tls_tunnel.test.py | 20 +
tests/gold_tests/tls/tls_tunnel_forward.test.py | 1 +
tests/gold_tests/tunnel/tunnel_transform.test.py | 2 +
tests/gold_tests/tunnel/txn_type.test.py | 2 +
tests/gold_tests/uds/uds_socket_perm.test.py | 57 +++
tests/tools/plugins/CMakeLists.txt | 2 +
tests/tools/plugins/async_handshake.cc | 20 +-
tests/tools/plugins/delay_txn_start.cc | 122 +++++
tests/tools/plugins/hook_add_plugin.cc | 24 +-
tests/tools/plugins/redirect_rearm.cc | 112 +++++
392 files changed, 19484 insertions(+), 2154 deletions(-)
create mode 100644 doc/admin-guide/configuration/regex-best-practices.en.rst
create mode 100644 include/tsutil/AtomicSharedPtr.h
create mode 100644 plugins/esi/combo_handler_utils.cc
copy src/tsutil/unit_tests/test_Strerror.cc =>
plugins/esi/combo_handler_utils.h (56%)
create mode 100644 plugins/esi/lib/IncludeUrlValidator.cc
create mode 100644 plugins/esi/lib/IncludeUrlValidator.h
create mode 100644 plugins/esi/test/combo_handler_utils_test.cc
create mode 100644 plugins/esi/test/include_url_validator_test.cc
create mode 100644 plugins/header_rewrite/cidr.h
create mode 100644 plugins/multiplexer/unit_tests/test_chunk_decoder.cc
create mode 100644 plugins/prefetch/path.cc
create mode 100644 plugins/prefetch/path.h
create mode 100644 plugins/prefetch/test/test_path.cc
copy src/iocore/{net/UDPIOEvent.cc => dns/HostEnt.cc} (81%)
copy {plugins/experimental/access_control =>
src/iocore/dns/unit_tests}/CMakeLists.txt (61%)
create mode 100644 src/iocore/dns/unit_tests/test_HostEnt.cc
create mode 100644 src/iocore/net/unit_tests/test_OCSPStapling.cc
copy src/{tscore/unit_tests/test_List.cc =>
iocore/net/unit_tests/test_SSLCertLookup.cc} (52%)
create mode 100644 src/iocore/net/unit_tests/test_SSLNetVConnectionAsyncEp.cc
create mode 100644 src/proxy/http/unit_tests/test_ChunkedHandler.cc
create mode 100644 src/proxy/http/unit_tests/test_HttpTransactHeaders.cc
create mode 100644 src/proxy/unit_tests/test_ControlBase.cc
create mode 100644 src/proxy/unit_tests/test_FetchSM.cc
create mode 100644 src/tscore/unit_tests/test_PendingAction.cc
copy tests/gold_tests/{headers/range.test.py => at_headers/at_headers.test.py}
(85%)
copy {example => tests/gold_tests/at_headers}/plugins/CMakeLists.txt (93%)
create mode 100644 tests/gold_tests/at_headers/plugins/at_header_probe.cc
create mode 100644 tests/gold_tests/at_headers/replay/at_headers.replay.yaml
create mode 100644 tests/gold_tests/cache/cache_corrupt_recursive_uaf.test.py
create mode 100644 tests/gold_tests/cache/host_down_range_recursion.test.py
copy tests/gold_tests/{dns/replay/single_transaction.replay.yaml =>
cache/replay/host_down_range_recursion_prime.replay.yaml} (72%)
create mode 100644
tests/gold_tests/cache/replay/host_down_range_recursion_range.replay.yaml
create mode 100644 tests/gold_tests/chunked_encoding/chunk_extension_client.py
create mode 100644
tests/gold_tests/chunked_encoding/chunk_extension_quoted_string.test.py
create mode 100644
tests/gold_tests/chunked_encoding/chunk_trailer_bare_lf.test.py
create mode 100644 tests/gold_tests/chunked_encoding/chunk_trailer_client.py
copy tests/gold_tests/{statistics/metric_response_429.test.py =>
chunked_encoding/chunked_flow_control.test.py} (71%)
copy tests/gold_tests/{cache/alternate-caching.test.py =>
chunked_encoding/chunked_not_last.test.py} (74%)
copy tests/gold_tests/{tls/tls_sni_with_port.replay.yaml =>
chunked_encoding/replays/chunk_extension_quoted_string.replay.yaml} (66%)
copy tests/gold_tests/{tls/tls_sni_with_port.replay.yaml =>
chunked_encoding/replays/chunk_trailer_bare_lf.replay.yaml} (64%)
create mode 100644
tests/gold_tests/chunked_encoding/replays/chunked_h1_flow_control.replay.yaml
create mode 100644
tests/gold_tests/chunked_encoding/replays/chunked_h2_flow_control.replay.yaml
create mode 100644
tests/gold_tests/chunked_encoding/replays/chunked_not_last.replay.yaml
create mode 100644
tests/gold_tests/chunked_encoding/replays/chunked_passthru_flow_control.replay.yaml
create mode 100644 tests/gold_tests/connect/connect_parent_error_body.test.py
create mode 100644
tests/gold_tests/connect/replays/connect_parent_error_body.replay.yaml
create mode 100644 tests/gold_tests/cripts/cripts_bundle.replay.yaml
create mode 100644 tests/gold_tests/cripts/cripts_bundle.test.py
create mode 100644 tests/gold_tests/cripts/files/bundle_headers.cript
create mode 100644 tests/gold_tests/cripts/files/direct_headers.cript
create mode 100644 tests/gold_tests/cripts/files/server_bundle_headers.cript
copy tests/gold_tests/{connect/malformed_h2_request_client.py =>
h2/clients/h2_max_settings_per_minute.py} (58%)
create mode 100644 tests/gold_tests/h2/clients/h2_settings_ack_stall.py
create mode 100644 tests/gold_tests/h2/h1_trailer_client.py
create mode 100644 tests/gold_tests/h2/h2_origin_cert_reverify.test.py
copy tests/gold_tests/{ip_allow/replays/h3.replay.yaml =>
h2/h2_origin_trailers_h1.replay.yaml} (66%)
create mode 100644 tests/gold_tests/h2/h2_origin_trailers_h1.test.py
create mode 100644 tests/gold_tests/h2/http2_crlf_header_validation.test.py
create mode 100644 tests/gold_tests/h2/http2_txn_start_read_gate.test.py
copy tests/gold_tests/{tls/replay/tls_cert_compression_cache.replay.yaml =>
h2/replay/http2_settings_ack_stall.replay.yaml} (73%)
copy tests/gold_tests/h2/{h2get_with_body.yaml =>
replay/http2_txn_start_read_gate.replay.yaml} (61%)
copy tests/gold_tests/h2/{expect_100_continue.yaml =>
replay_h2_origin_cert_reverify.yaml} (66%)
create mode 100644
tests/gold_tests/headers/clients/oversized_field_h2_client.py
copy plugins/experimental/magick/sign.sh =>
tests/gold_tests/headers/hopbyhop_connection.test.py (77%)
mode change 100755 => 100644
copy tests/gold_tests/{basic/basic.test.py => headers/oversized_field.test.py}
(69%)
create mode 100644 tests/gold_tests/headers/oversized_field_h2.test.py
create mode 100644 tests/gold_tests/headers/replay/oversized_field.replay.yaml
copy
tests/gold_tests/{pluginTest/escalate/escalate_failover_server_non_get.replay.yaml
=> headers/replay/oversized_field_h2.replay.yaml} (50%)
copy tests/gold_tests/headers/replays/{hsts.replay.yaml =>
hopbyhop_connection.replay.yaml} (51%)
create mode 100644 tests/gold_tests/ip_allow/connect_destination_acl.test.py
copy tests/gold_tests/next_hop/{strategies_ch2/strategies_ch2.test.py =>
strategies_ch5/strategies_ch5.test.py} (50%)
create mode 100644 tests/gold_tests/next_hop/strategies_ch5/trace.gold
copy tests/gold_tests/{cache/alternate-caching.test.py =>
parent_proxy/parent_retry_non_retryable_post.test.py} (72%)
create mode 100644
tests/gold_tests/parent_proxy/replays/parent_retry_non_retryable_post.replay.yaml
create mode 100644
tests/gold_tests/pipeline/delete_maxforwards_body_desync.test.py
create mode 100644 tests/gold_tests/pipeline/delete_maxfwd_noop_drain.test.py
create mode 100644 tests/gold_tests/pipeline/desync_client.py
create mode 100644 tests/gold_tests/pipeline/desync_client_miss.py
create mode 100644 tests/gold_tests/pipeline/desync_server.py
create mode 100644 tests/gold_tests/pipeline/noop_keepalive.test.py
create mode 100644 tests/gold_tests/pipeline/noop_keepalive_client.py
copy tests/gold_tests/pluginTest/certifier/replays/{https.replay.yaml =>
https-no-sni.replay.yaml} (95%)
copy tests/gold_tests/pluginTest/certifier/replays/{https.replay.yaml =>
https-path-traversal.replay.yaml} (93%)
copy tests/gold_tests/pluginTest/combo_handler/combo_handler_files/{tr2.gold
=> cache_control_aggregation.gold} (70%)
copy tests/gold_tests/pluginTest/combo_handler/combo_handler_files/{tr2.gold
=> max_age_zero.gold} (70%)
copy tests/gold_tests/pluginTest/combo_handler/combo_handler_files/{tr1.gold
=> tr3.gold} (100%)
copy tests/gold_tests/{ats_probe/ats_probe.replay.yaml =>
pluginTest/esi/esi_nested_html_comment.replay.yaml} (62%)
create mode 100644
tests/gold_tests/pluginTest/esi/esi_nested_html_comment.test.py
copy tests/gold_tests/pluginTest/{xdebug/x_probe/x_probe.replay.yaml =>
esi/esi_nested_html_comment_reject.replay.yaml} (57%)
create mode 100644 tests/gold_tests/pluginTest/esi/esi_request_size_cap.test.py
create mode 100644
tests/gold_tests/pluginTest/esi/esi_ssrf_validate.replay.yaml
create mode 100644 tests/gold_tests/pluginTest/esi/esi_ssrf_validate.test.py
copy tests/gold_tests/pluginTest/header_rewrite/rules/{rule_empty_body.conf =>
rule_cidr.conf} (71%)
create mode 100644
tests/gold_tests/pluginTest/header_rewrite/rules/rule_cookie.conf
copy plugins/lua/example/test_fetch.lua =>
tests/gold_tests/pluginTest/lua/fetch_ipv6_cliaddr.lua (60%)
copy tests/gold_tests/pluginTest/lua/{lua_client_hook.test.py =>
lua_fetch_ipv6_cliaddr.test.py} (50%)
create mode 100644 tests/gold_tests/pluginTest/lua/lua_remap_after_hook.test.py
copy plugins/lua/example/test_ret_403.lua =>
tests/gold_tests/pluginTest/lua/remap_after_hook.lua (71%)
copy
tests/gold_tests/pluginTest/{ja4_fingerprint/ja4_fingerprint_basic_server.replay.yaml
=> multiplexer/replays/multiplexer_invalid_chunk_copy.replay.yaml} (64%)
copy tests/gold_tests/{tls/tls_sni_with_port.replay.yaml =>
pluginTest/multiplexer/replays/multiplexer_invalid_chunk_original.replay.yaml}
(69%)
create mode 100644
tests/gold_tests/pluginTest/prefetch/prefetch_query_path_traversal.replay.yaml
copy tests/gold_tests/{headers/invalid_range_header.test.py =>
pluginTest/prefetch/prefetch_query_path_traversal.test.py} (82%)
copy ci/jenkins/bin/rat.sh =>
tests/gold_tests/pluginTest/rate_limit/concurrent_reject.sh (62%)
copy ci/jenkins/bin/rat.sh =>
tests/gold_tests/pluginTest/rate_limit/independent_limiters.sh (60%)
create mode 100755
tests/gold_tests/pluginTest/rate_limit/queue_bypass_regression.sh
create mode 100755 tests/gold_tests/pluginTest/rate_limit/queue_drain.sh
create mode 100644 tests/gold_tests/pluginTest/rate_limit/rate_limit.test.py
create mode 100644
tests/gold_tests/pluginTest/rate_limit/rate_limit_iprep.test.py
create mode 100644
tests/gold_tests/pluginTest/rate_limit/rate_limit_sni.test.py
copy ci/jenkins/bin/in_tree.sh =>
tests/gold_tests/pluginTest/rate_limit/retry_after.sh (70%)
copy ci/jenkins/bin/rat.sh =>
tests/gold_tests/pluginTest/rate_limit/sequential_pass.sh (62%)
create mode 100644
tests/gold_tests/pluginTest/redirect_limit/redirect_limit.test.py
create mode 100644 tests/gold_tests/pluginTest/slice/shrink_origin.py
create mode 100644
tests/gold_tests/pluginTest/slice/slice_content_shrink.test.py
copy
tests/gold_tests/pluginTest/stale_response/{stale_response_with_force_swr.replay.yaml
=> stale_response_max_memory.replay.yaml} (60%)
copy
tests/gold_tests/pluginTest/{ja4_fingerprint/ja4_fingerprint_basic_server.replay.yaml
=> webp_transform/replay/webp_chunked_cap.replay.yaml} (67%)
create mode 100644
tests/gold_tests/pluginTest/webp_transform/webp_transform_cache_refused.test.py
create mode 100644
tests/gold_tests/pluginTest/webp_transform/webp_transform_chunked_cap.test.py
create mode 100644
tests/gold_tests/pluginTest/webp_transform/webp_transform_decode_limit.test.py
create mode 100644
tests/gold_tests/pluginTest/webp_transform/webp_transform_max_buffer_size.test.py
create mode 100644
tests/gold_tests/pluginTest/webp_transform/webp_transform_size_cap.test.py
copy tests/gold_tests/pluginTest/{slice/replay/slice_long_etag.replay.yaml =>
xdebug/x_remap_long_url/x_remap_long_url.replay.yaml} (61%)
copy tests/gold_tests/{basic/basic.test.py =>
pluginTest/xdebug/x_remap_long_url/x_remap_long_url.test.py} (61%)
create mode 100644 tests/gold_tests/remap/regex_map_anchor.test.py
create mode 100644 tests/gold_tests/remap/replay/regex_map_anchor.replay.yaml
create mode 100644 tests/gold_tests/tls/proxy_protocol_addressless.test.py
create mode 100644
tests/gold_tests/tls/replay/outbound_sni_server_name_plain.replay.yaml
copy tests/gold_tests/tls/{replay/tls_cert_compression_cache.replay.yaml =>
tls_accept_timeout_crash.replay.yaml} (74%)
create mode 100644 tests/gold_tests/tls/tls_accept_timeout_crash.test.py
create mode 100644 tests/gold_tests/tls/tls_engine_abort.py
create mode 100644 tests/gold_tests/tls/tls_engine_abort.test.py
create mode 100644
tests/gold_tests/tls/tls_outbound_sni_server_name_plain.test.py
create mode 100644 tests/gold_tests/uds/uds_socket_perm.test.py
create mode 100644 tests/tools/plugins/delay_txn_start.cc
create mode 100644 tests/tools/plugins/redirect_rearm.cc