This is an automated email from the ASF dual-hosted git repository. bneradt pushed a commit to branch 11-Dev in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 541e0641c81e4dcb45e24329cd5b97ba0560a6d5 Merge: 80594bf377 16a93c9b76 Author: bneradt <[email protected]> AuthorDate: Wed Feb 4 16:32:34 2026 -0600 Merge master into 11-Dev Conflicts: doc/developer-guide/testing/blackbox-testing.en.rst src/iocore/net/SSLSessionCache.cc .claude/CLAUDE.md | 67 ++++- .github/workflows/cifuzz.yml | 2 +- .gitignore | 10 +- CMakeLists.txt | 2 +- ci/docker/deb/Dockerfile | 4 +- ci/docker/yum/Dockerfile | 4 +- doc/CMakeLists.txt | 62 ++-- doc/README.md | 12 +- doc/admin-guide/files/records.yaml.en.rst | 16 + doc/admin-guide/plugins/header_rewrite.en.rst | 24 ++ .../command-line/traffic_crashlog.en.rst | 6 +- doc/appendices/command-line/traffic_ctl.en.rst | 16 +- doc/developer-guide/documentation/building.en.rst | 16 +- .../internal-libraries/ArgParser.en.rst | 59 +++- doc/developer-guide/testing/autests.en.rst | 1 - .../testing/blackbox-testing.en.rst | 272 ----------------- doc/developer-guide/testing/index.en.rst | 1 - doc/{Pipfile => pyproject.toml} | 45 ++- ext/README.md | 37 ++- include/mgmt/rpc/server/CommBase.h | 2 +- include/proxy/http/HttpTransact.h | 4 + include/proxy/http2/Http2Stream.h | 14 +- include/tscore/ArgParser.h | 18 +- include/tsutil/Metrics.h | 27 +- include/tsutil/ts_unit_parser.h | 2 +- memory-bank/01-project-overview.md | 93 ------ memory-bank/02-build-system.md | 95 ------ memory-bank/03-plugin-system.md | 58 ---- memory-bank/04-development-workflow.md | 42 --- memory-bank/05-directory-structure.md | 113 ------- memory-bank/06-technical-concepts.md | 63 ---- memory-bank/README.md | 67 ----- plugins/background_fetch/configs.cc | 2 +- plugins/experimental/cache_fill/configs.cc | 2 +- plugins/experimental/ja4_fingerprint/plugin.cc | 66 ++++- plugins/experimental/ja4_fingerprint/test_ja4.cc | 2 +- .../experimental/txn_box/plugin/src/Comparison.cc | 1 + plugins/experimental/txn_box/plugin/src/ts_util.cc | 4 +- .../txn_box/{Pipfile => pyproject.toml} | 23 +- plugins/header_rewrite/conditions.cc | 43 ++- plugins/header_rewrite/conditions.h | 1 + plugins/header_rewrite/matcher.h | 2 +- plugins/header_rewrite/operators.cc | 3 + plugins/header_rewrite/resources.cc | 32 ++ plugins/header_rewrite/resources.h | 41 ++- plugins/ja3_fingerprint/ja3_fingerprint.cc | 50 +++- plugins/origin_server_auth/aws_auth_v4.cc | 129 +++++--- .../unit_tests/test_aws_auth_v4.cc | 324 ++++++++++++++++++--- .../unit_tests/test_aws_auth_v4.h | 4 +- plugins/regex_remap/regex_remap.cc | 2 +- plugins/xdebug/xdebug_transforms.cc | 9 +- src/iocore/aio/test_AIO.cc | 1 + src/iocore/cache/Cache.cc | 5 +- src/iocore/cache/CacheDir.cc | 77 ++++- src/iocore/cache/CacheProcessor.cc | 72 ++--- src/iocore/cache/CacheRead.cc | 2 +- src/iocore/cache/CacheTest.cc | 3 + src/iocore/cache/P_CacheDir.h | 20 +- src/iocore/cache/P_CacheInternal.h | 22 +- src/iocore/cache/P_CacheStats.h | 72 ++--- src/iocore/cache/Stripe.cc | 1 + src/iocore/cache/StripeSM.cc | 7 +- src/iocore/cache/StripeSM.h | 65 ++++- src/iocore/eventsystem/IOBuffer.cc | 39 +-- src/iocore/net/unit_tests/test_ProxyProtocol.cc | 1 + src/mgmt/rpc/server/CommBase.cc | 3 + src/mgmt/rpc/server/IPCSocketServer.cc | 8 +- src/proxy/Plugin.cc | 2 +- src/proxy/hdrs/unit_tests/test_HeaderValidator.cc | 2 + src/proxy/http/HttpConfig.cc | 5 +- src/proxy/http/HttpSM.cc | 43 ++- src/proxy/http/HttpTransact.cc | 35 ++- src/proxy/http/HttpTransactHeaders.cc | 5 + src/proxy/http/remap/PluginDso.cc | 12 +- src/proxy/http/remap/RemapConfig.cc | 2 +- .../remap/unit-tests/test_NextHopRoundRobin.cc | 2 + .../http/remap/unit-tests/test_RemapPlugin.cc | 1 + .../http2/unit_tests/test_HpackIndexingTable.cc | 1 + src/proxy/logging/LogAccess.cc | 11 +- src/proxy/logging/LogBuffer.cc | 2 + src/proxy/shared/DiagsConfig.cc | 2 +- src/records/CMakeLists.txt | 5 +- src/records/RecCore.cc | 4 +- src/records/RecUtils.cc | 68 ++++- src/records/RecordsConfig.cc | 148 +++++++++- src/records/unit_tests/test_RecUtils.cc | 201 +++++++++++++ src/traffic_crashlog/backtrace.cc | 100 +++++-- src/traffic_crashlog/procinfo.cc | 6 - src/traffic_crashlog/traffic_crashlog.cc | 111 +++++-- src/traffic_crashlog/traffic_crashlog.h | 21 +- src/traffic_ctl/CtrlCommands.cc | 21 +- src/traffic_ctl/CtrlCommands.h | 1 + src/traffic_ctl/traffic_ctl.cc | 5 +- src/traffic_server/Crash.cc | 22 ++ src/traffic_server/traffic_server.cc | 7 +- src/tscore/ArgParser.cc | 93 +++++- src/tscore/CMakeLists.txt | 1 + .../test_ArgParser_OptionDependencies.cc | 237 +++++++++++++++ src/tsutil/Metrics.cc | 7 +- src/tsutil/ts_unit_parser.cc | 2 +- tests/CMakeLists.txt | 32 +- tests/Pipfile | 62 ---- tests/README.md | 2 +- tests/autest.sh | 2 +- tests/autest.sh.in | 2 +- tests/fuzzing/oss-fuzz.sh | 7 +- tests/gold_tests/autest-site/ats_replay.test.ext | 10 + tests/gold_tests/autest-site/init.cli.ext | 4 +- tests/gold_tests/cache/cache-auth.test.py | 4 + .../gold_tests/cache/cache-read-retry-mode.test.py | 20 +- .../gold/negative-revalidating-enabled-access.gold | 15 + .../cache/replay/auth-s-maxage.replay.yaml | 204 +++++++++++++ .../cache/replay/cache-read-retry.replay.yaml | 234 +++++++++++++++ .../negative-revalidating-enabled.replay.yaml | 65 +++++ .../pluginTest/crash_test}/CMakeLists.txt | 32 +- .../gold_tests/pluginTest/crash_test/crash_test.cc | 105 +++++++ .../pluginTest/crash_test/crash_test.test.py | 101 +++++++ .../header_rewrite_bundle.replay.yaml | 112 ++++++- .../rules/{regex_tests.conf => query_sub_key.conf} | 13 +- .../header_rewrite/rules/regex_tests.conf | 7 +- .../ja3_fingerprint/ja3_fingerprint.test.py | 16 +- .../ja3_fingerprint_global.replay.yaml | 5 +- .../ja3_fingerprint/modify-incoming-proxy.gold | 3 +- ...ng-proxy.gold => modify-sent-proxy-global.gold} | 3 +- ...ent-proxy.gold => modify-sent-proxy-remap.gold} | 1 + .../ja4_fingerprint/ja4_fingerprint.replay.yaml | 72 ++++- .../ja4_fingerprint/ja4_fingerprint.test.py | 53 +++- .../rules/s3_url_encoding.test_input} | 15 +- .../origin_server_auth/s3_url_encoding.test.py | 198 +++++++++++++ .../slow-body-server.sh | 78 +++++ .../verify_no_loop.sh | 64 ++++ .../x_probe_full_json_slow_origin.test.py | 80 +++++ tests/gold_tests/traffic_ctl/gold/test_2.gold | 1 - tests/gold_tests/traffic_ctl/gold/test_3.gold | 1 - .../traffic_ctl/traffic_ctl_server_debug.test.py | 80 +++++ .../traffic_ctl/traffic_ctl_test_utils.py | 54 ++++ tests/pyproject.toml | 66 +++++ tests/test-env-check.sh | 15 +- tests/tools/condwait | 14 +- tools/build_boringssl_h3_tools.sh | 14 +- tools/cmake-format.sh | 60 +--- tools/git/pre-commit | 22 +- tools/hrw4u/.gitignore | 3 +- tools/hrw4u/Makefile | 21 +- tools/hrw4u/README.md | 23 +- tools/hrw4u/bootstrap.sh | 30 +- tools/hrw4u/pyproject.toml | 9 +- tools/hrw4u/src/lsp/completions.py | 8 +- tools/hrw4u/src/symbols.py | 14 +- tools/hrw4u/src/symbols_base.py | 4 +- tools/hrw4u/src/tables.py | 114 ++++---- tools/hrw4u/src/visitor.py | 5 +- .../hrw4u/tests/data/examples/all-nonsense.ast.txt | 2 +- .../tests/data/examples/all-nonsense.input.txt | 2 +- .../tests/data/examples/all-nonsense.output.txt | 2 +- .../data/hooks/inbound_resp_section.fail.error.txt | 3 + .../data/hooks/inbound_resp_section.fail.input.txt | 3 + .../hooks/outbound_resp_section.fail.error.txt | 3 + .../hooks/outbound_resp_section.fail.input.txt | 3 + tools/hrw4u/tests/data/ops/skip-remap.ast.txt | 2 +- tools/hrw4u/tests/data/ops/skip-remap.input.txt | 2 +- tools/hrw4u/tests/data/ops/skip-remap.output.txt | 2 +- .../data/ops/skip_remap_quoted_bool.fail.input.txt | 2 +- tools/hrw4u/tests/test_lsp.py | 42 +-- tools/yapf.sh | 61 +--- 165 files changed, 4125 insertions(+), 1760 deletions(-) diff --cc tests/gold_tests/pluginTest/ja4_fingerprint/ja4_fingerprint.test.py index 23baa439c4,71de43cd51..cd2bb3c2f9 --- a/tests/gold_tests/pluginTest/ja4_fingerprint/ja4_fingerprint.test.py +++ b/tests/gold_tests/pluginTest/ja4_fingerprint/ja4_fingerprint.test.py @@@ -125,15 -127,12 +127,18 @@@ class TestJA4Fingerprint ts.Disk.remap_config.AddLine(f'map / http://localhost:{server_one.Variables.http_port}') - ts.Disk.ssl_multicert_config.AddLine(f'dest_ip=* ssl_cert_name=server.pem ssl_key_name=server.key') + ts.Disk.ssl_multicert_yaml.AddLines( + """ +ssl_multicert: + - dest_ip: "*" + ssl_cert_name: server.pem + ssl_key_name: server.key +""".split("\n")) - ts.Disk.plugin_config.AddLine(f'ja4_fingerprint.so') + plugin_args = 'ja4_fingerprint.so' + if self.use_preserve: + plugin_args += ' --preserve' + ts.Disk.plugin_config.AddLine(plugin_args) log_path = os.path.join(ts.Variables.LOGDIR, "ja4_fingerprint.log") ts.Disk.File(log_path, id='log_file')
