This is an automated email from the ASF dual-hosted git repository. bneradt pushed a change to branch 11-Dev in repository https://gitbox.apache.org/repos/asf/trafficserver.git
from 7c4a753322 Merge master into 11-Dev add 0f50772212 Make OCSP refresh messages debug logs (#12329) add 624462f3a9 Expose JSON client timeout to CLI (#12323) add 6e812e3ff7 Fix potential mutex destroy while locked in origin_server_auth plugin (#12307) add c9e5fb7adf Return captive_action from HttpCachSM if read retry event is scheduled (#12313) add b96659d2d9 Updated SSLSNIConfig to use the Regex class (pcre2) (#12219) add df8067757f xdebug: release the client request MLoc (#12332) add 0c08c8d205 ja3_fingerprint: fix leak of duplicate header fields (#12331) add 57d73b7397 hrw4u -- accept text from stdin (#12309) add 13ee0cdf42 Add some more hrw4u help (#12286) add 4895d5332a gdb-helpers.py: Add tunnel events to the history parser (#12322) add 5c32308858 Add security policy (#12328) add f449d9837c header_rewrite: Add INBOUND_IP_SOURCE controller (#12246) add effee1109c typo in tls version warning (#12343) add 671f791ab5 Cripts: Adds some certificate introspection (#12320) add 745b6de516 Run autests with curl UDS default (#12168) add 0941969d9e Fixes some test errors from previous commits (#12345) add fbccde0ceb Hrw4U: Multi cond fixes + allow conds to have a default expression of !="" (#12346) add 636772a5c5 stats_over_http: ensure BrotliEncoderDestroyInstance (#12333) add 8689842cfe Fix the curl.test.ext spawn_curl_commands ts parameter (#12358) add a62efe1adc traffic_ctl: get all host statuses by empty arg (#12352) add 5b03698684 Changed traffic_layout to report the version of PCRE2 (#12354) add 67064f6029 Fix cripts build issue (#12351) add 441c7f8753 traffic_ctl - Add ECONNREFUSED to the retry list when connection to the rpc. (#12342) add 1e1d1cb4e5 Skip autest for PROXY protocol if the version of curl is old (#12362) add 105af5d025 docs: Add more condition/operators (#12339) add b0a7d43a09 Cleanup HostDBContinuation (#12348) add 0c91131c12 HRW: Fix a broken Matcher related to Diags (#12365) add 27478a7ffe Add config file support for cache_fill (#12347) add 9a8f868808 Disable read/write_vio in Http2Stream::transaction_done (#12367) add e5e3da8973 Address HttpSM::attach_server_session crash (#12325) add 7a37f57824 Implement HuffmanCodec with LiteSpeed (#12357) add ef0e703e6c Add action & mutex check before triggering pending dns (#12341) add e9f6fac4dd Changed traffic_via over to PCRE2 (#12356) add 4b827a63d6 header_rewrite: Add optional switches to change plugin behavior on load (#12344) add c57eca2042 Move code for SSL from UnixNetVC to SSLNetVC (#12372) new 3a1b727c40 Merge latest master into 11-Dev The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: CMakePresets.json | 12 + NOTICE | 7 + SECURITY.md | 22 + doc/admin-guide/configuration/hrw4u.en.rst | 55 +- doc/admin-guide/plugins/header_rewrite.en.rst | 71 +- doc/developer-guide/cripts/cripts-certs.en.rst | 186 + .../cripts/cripts-connections.en.rst | 25 + doc/developer-guide/cripts/index.en.rst | 3 +- include/cripts/Certs.hpp | 633 + include/cripts/ConfigsBase.hpp | 1 + include/cripts/Connections.hpp | 102 +- include/cripts/Matcher.hpp | 6 +- include/cripts/Preamble.hpp | 1 + include/iocore/hostdb/HostDBProcessor.h | 5 - include/iocore/net/SSLSNIConfig.h | 19 +- include/proxy/hdrs/HuffmanCodec.h | 8 +- include/proxy/http/HttpCacheSM.h | 2 +- include/shared/rpc/RPCClient.h | 10 +- include/tsutil/Regex.h | 4 + lib/CMakeLists.txt | 2 + {plugins/cachekey => lib/ls-hpack}/CMakeLists.txt | 11 +- lib/ls-hpack/README.md | 26 + lib/ls-hpack/huff-tables.h | 136290 ++++++++++++++++++ lib/ls-hpack/lshpack.cc | 246 + lib/ls-hpack/lshpack.h | 68 + plugins/experimental/cache_fill/CMakeLists.txt | 2 +- plugins/experimental/cache_fill/cache_fill.cc | 80 +- .../cache_fill}/configs.cc | 27 +- .../cache_fill}/configs.h | 5 - .../cache_fill}/rules.cc | 13 +- .../cache_fill}/rules.h | 0 plugins/header_rewrite/conditions.cc | 44 +- plugins/header_rewrite/conditions.h | 32 +- plugins/header_rewrite/header_rewrite.cc | 85 +- plugins/header_rewrite/matcher.cc | 2 +- plugins/header_rewrite/operators.cc | 12 + plugins/header_rewrite/operators.h | 1 + plugins/header_rewrite/statement.h | 18 +- plugins/ja3_fingerprint/ja3_fingerprint.cc | 10 +- plugins/origin_server_auth/origin_server_auth.cc | 40 +- plugins/stats_over_http/stats_over_http.cc | 66 +- plugins/xdebug/xdebug.cc | 2 + src/cripts/CMakeLists.txt | 1 + src/cripts/Certs.cc | 269 + src/cripts/Connections.cc | 14 + src/iocore/cache/CMakeLists.txt | 1 + src/iocore/hostdb/HostDB.cc | 160 +- src/iocore/hostdb/P_HostDBProcessor.h | 45 +- src/iocore/net/OCSPStapling.cc | 4 +- src/iocore/net/P_QUICNetVConnection.h | 4 +- src/iocore/net/P_SSLNetVConnection.h | 20 +- src/iocore/net/P_UnixNetVConnection.h | 38 +- src/iocore/net/QUICNetVConnection.cc | 14 +- src/iocore/net/SNIActionPerformer.cc | 2 +- src/iocore/net/SSLNetVConnection.cc | 76 +- src/iocore/net/SSLSNIConfig.cc | 42 +- src/iocore/net/UnixNetVConnection.cc | 80 +- src/proxy/hdrs/CMakeLists.txt | 13 +- src/proxy/hdrs/HuffmanCodec.cc | 459 +- src/proxy/hdrs/XPACK.cc | 14 +- src/proxy/hdrs/unit_tests/test_Huffmancode.cc | 13 +- src/proxy/hdrs/unit_tests/test_XPACK.cc | 3 - src/proxy/hdrs/unit_tests/unit_test_main.cc | 6 - src/proxy/http/HttpCacheSM.cc | 28 +- src/proxy/http/HttpSM.cc | 5 +- src/proxy/http2/Http2Stream.cc | 12 +- src/proxy/http2/test_HPACK.cc | 4 - src/proxy/http2/unit_tests/main.cc | 3 - src/proxy/http3/test/main_qpack.cc | 1 - src/shared/rpc/IPCSocketClient.cc | 12 +- src/traffic_ctl/CtrlCommands.cc | 31 +- src/traffic_ctl/CtrlCommands.h | 25 +- src/traffic_ctl/FileConfigCommand.h | 3 +- src/traffic_ctl/traffic_ctl.cc | 6 +- src/traffic_layout/info.cc | 11 +- src/traffic_quic/traffic_quic.cc | 1 - src/traffic_server/traffic_server.cc | 1 - src/traffic_top/stats.h | 3 +- src/traffic_via/traffic_via.cc | 55 +- src/tsutil/Regex.cc | 34 +- tests/CMakeLists.txt | 51 +- tests/README.md | 2 +- tests/autest.sh.in | 2 +- tests/fuzzing/fuzz_hpack.cc | 2 - tests/gold_tests/autest-site/conditions.test.ext | 5 + tests/gold_tests/autest-site/curl.test.ext | 16 +- tests/gold_tests/autest-site/setup.cli.ext | 2 +- .../gold_tests/autest-site/trafficserver.test.ext | 2 +- tests/gold_tests/basic/basic.test.py | 2 +- tests/gold_tests/basic/config.test.py | 4 +- tests/gold_tests/basic/copy_config.test.py | 8 +- tests/gold_tests/basic/copy_config2.test.py | 4 +- tests/gold_tests/bigobj/bigobj.test.py | 47 +- tests/gold_tests/cache/background_fill.test.py | 19 +- tests/gold_tests/cache/cache-control.test.py | 9 +- .../cache/cache-generation-clear.test.py | 15 +- .../cache/cache-generation-disjoint.test.py | 18 +- .../cache/disjoint-wait-for-cache.test.py | 18 +- .../cache/proxy_serve_stale_dns_fail.test.py | 10 +- .../chunked_encoding/bad_chunked_encoding.test.py | 6 +- .../chunked_encoding/chunked_encoding.test.py | 32 +- .../chunked_encoding/chunked_encoding_h2.test.py | 1 + .../chunked_encoding/gold/chunked_GET_200.gold | 2 +- ...unked_GET_200.gold => chunked_GET_200_uds.gold} | 4 +- tests/gold_tests/connect/connect.test.py | 16 +- ...ect_0_stderr.gold => connect_0_stderr_uds.gold} | 7 +- tests/gold_tests/continuations/double.test.py | 2 +- tests/gold_tests/continuations/double_h2.test.py | 1 + tests/gold_tests/continuations/openclose.test.py | 2 +- .../gold_tests/continuations/openclose_h2.test.py | 1 + tests/gold_tests/continuations/session_id.test.py | 18 +- tests/gold_tests/cripts/cripts.test.py | 32 +- tests/gold_tests/cripts/files/basic.cript | 8 + tests/gold_tests/cripts/gold/certs_cript.gold | 17 + tests/gold_tests/dns/splitdns.test.py | 4 +- tests/gold_tests/early_hints/early_hints.test.py | 8 +- .../gold_tests/forward_proxy/forward_proxy.test.py | 1 + tests/gold_tests/headers/accept_webp.test.py | 1 + .../gold_tests/headers/cache_and_req_body.test.py | 2 +- tests/gold_tests/headers/cachedIMSRange.test.py | 81 +- tests/gold_tests/headers/field_name_space.test.py | 7 +- tests/gold_tests/headers/forwarded.test.py | 1 + .../headers/general-connection-failure-502.gold | 2 +- .../headers/good_request_after_bad.test.py | 5 +- tests/gold_tests/headers/hsts.test.py | 2 +- tests/gold_tests/headers/normalize_ae.test.py | 18 +- tests/gold_tests/headers/range.test.py | 22 +- tests/gold_tests/headers/syntax.test.py | 28 +- tests/gold_tests/headers/via.test.py | 69 +- tests/gold_tests/headers/via_uds.gold | 3 + tests/gold_tests/ip_allow/ip_allow.test.py | 2 +- .../{ip_allow.test.py => ip_allow_pp_uds.test.py} | 99 +- tests/gold_tests/logging/all_headers.test.py | 39 +- ...ustom-log.test.py => custom-log-pp-uds.test.py} | 33 +- tests/gold_tests/logging/custom-log.test.py | 1 + tests/gold_tests/logging/gold/custom_uds.gold | 8 + ..._all_headers.gold => test_all_headers_uds.gold} | 3 +- tests/gold_tests/logging/log-field-json.test.py | 8 +- tests/gold_tests/logging/log-field.test.py | 6 +- tests/gold_tests/logging/log-filenames.test.py | 3 +- tests/gold_tests/logging/new_log_flds.test.py | 27 +- tests/gold_tests/logging/new_log_flds_observer.py | 4 +- tests/gold_tests/logging/pqsi-pqsp.test.py | 4 +- .../parent_config/parent_config_dest_ip.test.py | 2 +- .../next_hop/strategies_ch/strategies_ch.test.py | 2 +- .../next_hop/strategies_ch2/strategies_ch2.test.py | 4 +- .../strategies_stale/strategies_stale.test.py | 4 +- .../zzz_strategies_peer.test.py | 7 +- .../zzz_strategies_peer2.test.py | 8 +- .../null_transform/gold/null_transform-200.gold | 2 +- .../null_transform/null_transform.test.py | 2 +- .../per_server_connection_max.test.py | 8 +- .../pluginTest/TSVConnFd/TSVConnFd.test.py | 6 +- .../cache_range_requests.test.py | 26 +- ...range_requests_cache_complete_responses.test.py | 30 +- .../cache_range_requests_cachekey.test.py | 6 +- .../cache_range_requests_cachekey_global.test.py | 2 +- .../cache_range_requests_ident.test.py | 16 +- .../cache_range_requests_ims.test.py | 8 +- .../pluginTest/cert_update/cert_update.test.py | 1 + .../client_context_dump.test.py | 2 +- tests/gold_tests/pluginTest/compress/compress.gold | 44 +- .../pluginTest/compress/compress.test.py | 28 +- .../pluginTest/cookie_remap/bucketcookie.test.py | 6 +- .../cookie_remap/collapseslashes.test.py | 3 +- .../pluginTest/cookie_remap/connector.test.py | 6 +- .../pluginTest/cookie_remap/existscookie.test.py | 6 +- .../pluginTest/cookie_remap/matchcookie.test.py | 6 +- .../pluginTest/cookie_remap/matchuri.test.py | 6 +- .../cookie_remap/notexistscookie.test.py | 6 +- .../cookie_remap/pcollapseslashes.test.py | 3 +- .../pluginTest/cookie_remap/psubstitute.test.py | 12 +- .../pluginTest/cookie_remap/regexcookie.test.py | 6 +- .../pluginTest/cookie_remap/setstatus.test.py | 6 +- .../pluginTest/cookie_remap/subcookie.test.py | 6 +- .../pluginTest/cookie_remap/substitute.test.py | 12 +- tests/gold_tests/pluginTest/esi/esi.test.py | 21 +- tests/gold_tests/pluginTest/esi/esi_304.test.py | 6 +- .../header_rewrite/gold/header_rewrite-303.gold | 2 +- .../header_rewrite/gold/header_rewrite-client.gold | 2 +- .../gold/header_rewrite-l_value.gold | 2 +- .../gold/header_rewrite_cond_method.gold | 2 +- .../header_rewrite/header_rewrite.test.py | 2 +- .../header_rewrite_cond_cache.test.py | 2 +- .../header_rewrite_cond_method.test.py | 5 +- .../header_rewrite_cond_ssn_txn_count.test.py | 2 +- .../header_rewrite/header_rewrite_l_value.test.py | 2 +- .../header_rewrite_set_body_from.test.py | 14 +- .../header_rewrite/header_rewrite_url.test.py | 5 +- .../header_rewrite/header_rewrite_url_glob.test.py | 4 +- .../pluginTest/lua/lua_client_hook.test.py | 2 +- .../pluginTest/lua/lua_debug_tags.test.py | 2 +- .../pluginTest/lua/lua_header_table.test.py | 2 +- .../pluginTest/lua/lua_states_stats.test.py | 2 +- .../pluginTest/lua/lua_watermark.test.py | 2 +- .../pluginTest/money_trace/money_trace.test.py | 26 +- .../money_trace/money_trace_global.test.py | 6 +- .../origin_server_auth/origin_server_auth.test.py | 4 +- .../pluginTest/polite_hook_wait/curl.gold | 1 + .../polite_hook_wait/polite_hook_wait.test.py | 10 +- .../pluginTest/prefetch/prefetch_bignum.gold | 2 +- .../pluginTest/prefetch/prefetch_bignum.test.py | 5 +- .../pluginTest/prefetch/prefetch_cmcd.test.py | 20 +- .../pluginTest/prefetch/prefetch_overflow.gold | 2 +- .../pluginTest/prefetch/prefetch_overflow.test.py | 4 +- .../pluginTest/prefetch/prefetch_simple.gold | 2 +- .../pluginTest/prefetch/prefetch_simple.test.py | 4 +- .../pluginTest/regex_remap/regex_remap.test.py | 10 +- .../regex_revalidate/regex_revalidate.test.py | 18 +- .../regex_revalidate/regex_revalidate_miss.test.py | 18 +- .../pluginTest/remap_stats/remap_stats.test.py | 4 +- .../remap_stats/remap_stats_post.test.py | 4 +- tests/gold_tests/pluginTest/slice/slice.test.py | 20 +- .../pluginTest/slice/slice_conditional.test.py | 12 +- .../pluginTest/slice/slice_crr_ident.test.py | 10 +- .../pluginTest/slice/slice_error.test.py | 8 +- .../pluginTest/slice/slice_ident.test.py | 14 +- .../pluginTest/slice/slice_prefetch.test.py | 12 +- .../pluginTest/slice/slice_regex.test.py | 8 +- .../pluginTest/slice/slice_selfhealing.test.py | 28 +- .../pluginTest/sslheaders/sslheaders.test.py | 1 + .../stats_over_http/stats_over_http.test.py | 2 +- .../pluginTest/test_hooks/body_buffer.test.py | 7 +- .../pluginTest/test_hooks/hook_add.test.py | 6 +- .../gold_tests/pluginTest/test_hooks/log_uds.gold | 12 + .../test_hooks/ssn_start_delay_hook.test.py | 6 +- .../pluginTest/test_hooks/test_hooks.test.py | 30 +- .../pluginTest/tsapi/{log.gold => log_uds.gold} | 47 - .../pluginTest/tsapi/test_TSVConnPPInfo.test.py | 5 +- tests/gold_tests/pluginTest/tsapi/tsapi.test.py | 24 +- .../pluginTest/uri_signing/uri_signing.test.py | 48 +- .../gold_tests/pluginTest/url_sig/url_sig.test.py | 57 +- tests/gold_tests/post/post-continue.test.py | 1 + tests/gold_tests/post/post-early-return.test.py | 1 + .../post_slow_server/post_slow_server.test.py | 3 +- .../post_slow_server_max_requests_in.test.py | 4 +- .../redirect/gold/number_of_redirections_0.gold | 14 +- .../redirect/gold/number_of_redirections_2.gold | 6 +- .../redirect/number_of_redirects.test.py | 2 +- tests/gold_tests/redirect/redirect_post.test.py | 5 +- .../gold_tests/remap/basic_conf_remap_yaml.test.py | 21 +- ...{remap-https-200_2.gold => 200OK_test_uds.gold} | 6 +- .../gold/remap-ws-metrics-uds.gold} | 10 +- tests/gold_tests/remap/regex_map.test.py | 2 +- tests/gold_tests/remap/remap_http.test.py | 29 +- tests/gold_tests/remap/remap_https.test.py | 1 + tests/gold_tests/remap/remap_ip_resolve.test.py | 4 +- tests/gold_tests/remap/remap_ws.test.py | 32 +- .../session_sharing/session_match.test.py | 3 +- tests/gold_tests/slow_post/server_abort.test.py | 1 + tests/gold_tests/timeout/active_timeout.test.py | 27 +- .../timeout/inactive_client_timeout.test.py | 17 +- tests/gold_tests/timeout/inactive_timeout.test.py | 22 +- .../slow_server_uds.yaml} | 50 +- tests/gold_tests/tls/tls_client_verify3.test.py | 18 +- .../traffic_ctl/remap_inc/remap_inc.test.py | 2 +- tests/gold_tests/tunnel/tunnel_transform.test.py | 1 + tests/gold_tests/tunnel/txn_type.test.py | 1 + tools/clang-format.sh | 2 +- tools/cmake-format.sh | 2 +- tools/cripts/compiler.sh | 6 +- tools/gdb-helpers.py | 11 + tools/git/pre-commit | 4 +- tools/hrw4u/.gitignore | 2 + tools/hrw4u/bootstrap.sh | 14 +- tools/hrw4u/requirements.txt | 1 + tools/hrw4u/scripts/hrw4u | 23 +- tools/hrw4u/src/errors.py | 2 +- tools/hrw4u/src/symbols.py | 70 +- tools/hrw4u/src/visitor.py | 32 +- tools/hrw4u/tests/data/conds/cookie.ast.txt | 2 +- tools/hrw4u/tests/data/conds/cookie.output.txt | 2 +- tools/hrw4u/tests/data/conds/impl-expr.ast.txt | 1 + tools/hrw4u/tests/data/conds/impl-expr.input.txt | 5 + tools/hrw4u/tests/data/conds/impl-expr.output.txt | 4 + tools/hrw4u/tests/data/conds/long-if.ast.txt | 1 + tools/hrw4u/tests/data/conds/long-if.input.txt | 11 + tools/hrw4u/tests/data/conds/long-if.output.txt | 15 + 278 files changed, 139953 insertions(+), 2053 deletions(-) create mode 100644 SECURITY.md create mode 100644 doc/developer-guide/cripts/cripts-certs.en.rst create mode 100644 include/cripts/Certs.hpp copy {plugins/cachekey => lib/ls-hpack}/CMakeLists.txt (66%) create mode 100644 lib/ls-hpack/README.md create mode 100644 lib/ls-hpack/huff-tables.h create mode 100644 lib/ls-hpack/lshpack.cc create mode 100644 lib/ls-hpack/lshpack.h copy plugins/{background_fetch => experimental/cache_fill}/configs.cc (88%) copy plugins/{background_fetch => experimental/cache_fill}/configs.h (95%) copy plugins/{background_fetch => experimental/cache_fill}/rules.cc (92%) copy plugins/{background_fetch => experimental/cache_fill}/rules.h (100%) create mode 100644 src/cripts/Certs.cc copy tests/gold_tests/chunked_encoding/gold/{chunked_GET_200.gold => chunked_GET_200_uds.gold} (68%) copy tests/gold_tests/connect/gold/{connect_0_stderr.gold => connect_0_stderr_uds.gold} (56%) create mode 100644 tests/gold_tests/cripts/gold/certs_cript.gold create mode 100644 tests/gold_tests/headers/via_uds.gold copy tests/gold_tests/ip_allow/{ip_allow.test.py => ip_allow_pp_uds.test.py} (74%) copy tests/gold_tests/logging/{custom-log.test.py => custom-log-pp-uds.test.py} (64%) create mode 100644 tests/gold_tests/logging/gold/custom_uds.gold copy tests/gold_tests/logging/gold/{test_all_headers.gold => test_all_headers_uds.gold} (97%) create mode 100644 tests/gold_tests/pluginTest/test_hooks/log_uds.gold copy tests/gold_tests/pluginTest/tsapi/{log.gold => log_uds.gold} (68%) copy tests/gold_tests/remap/gold/{remap-https-200_2.gold => 200OK_test_uds.gold} (70%) copy tests/gold_tests/{connect/gold/metrics.gold => remap/gold/remap-ws-metrics-uds.gold} (80%) copy tests/gold_tests/{remap/reload_server.replay.yaml => timeout/slow_server_uds.yaml} (63%) create mode 100644 tools/hrw4u/.gitignore mode change 100644 => 100755 tools/hrw4u/bootstrap.sh create mode 100644 tools/hrw4u/tests/data/conds/impl-expr.ast.txt create mode 100644 tools/hrw4u/tests/data/conds/impl-expr.input.txt create mode 100644 tools/hrw4u/tests/data/conds/impl-expr.output.txt create mode 100644 tools/hrw4u/tests/data/conds/long-if.ast.txt create mode 100644 tools/hrw4u/tests/data/conds/long-if.input.txt create mode 100644 tools/hrw4u/tests/data/conds/long-if.output.txt