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 c8cb8ccaf9120347ce9cc3cd6b3ab0cd04eca9d2
Merge: 84923cd529 0983b5e783
Author: bneradt <bner...@yahooinc.com>
AuthorDate: Tue May 13 13:37:54 2025 -0500

    Merge remote-tracking branch 'upstream/master' into 11-Dev

 CMakeLists.txt                                     |  10 +-
 CMakePresets.json                                  |   7 +-
 cmake/ExperimentalPlugins.cmake                    |  22 +-
 cmake/Findopentelemetry.cmake                      |  64 +-
 cmake/Findwamr.cmake                               |   2 +-
 cmake/{Findwamr.cmake => Findwasmedge.cmake}       |  32 +-
 cmake/{Findwamr.cmake => Findwasmtime.cmake}       |  32 +-
 cmake/layout.cmake                                 |  33 +-
 doc/Pipfile                                        |   4 +-
 .../configuration/proxy-protocol.en.rst            |   3 +-
 doc/admin-guide/files/records.yaml.en.rst          |  20 +-
 doc/admin-guide/files/sni.yaml.en.rst              |  16 +-
 doc/admin-guide/logging/formatting.en.rst          |   3 +-
 .../statistics/core/http-connection.en.rst         |   3 +
 .../plugins/cache_range_requests.en.rst            |  30 +-
 doc/admin-guide/plugins/cachekey.en.rst            |   2 +-
 doc/admin-guide/plugins/header_rewrite.en.rst      |  67 +-
 doc/admin-guide/plugins/ja3_fingerprint.en.rst     |   3 +
 doc/admin-guide/plugins/otel_tracer.en.rst         |  32 +-
 doc/admin-guide/plugins/slice.en.rst               |   8 +
 .../plugins/txn_box/dev/dev-guide.en.rst           |   8 -
 doc/admin-guide/plugins/txn_box/misc.en.rst        |   8 -
 doc/admin-guide/plugins/wasm.en.rst                |  21 +-
 doc/appendices/command-line/traffic_ctl.en.rst     |  19 +-
 doc/conf.cmake.in.py                               |   1 -
 doc/conf.py                                        |   1 -
 .../api/functions/TSHttpOverridableConfig.en.rst   |   1 +
 .../api/types/TSOverridableConfigKey.en.rst        |   1 +
 .../cache-architecture/architecture.en.rst         |   4 +-
 .../cripts/cripts-convenience.en.rst               | 145 +++
 doc/developer-guide/cripts/cripts-global.en.rst    |   4 +-
 doc/developer-guide/cripts/cripts-misc.en.rst      |  14 +-
 doc/developer-guide/cripts/cripts-overview.en.rst  |   4 +-
 doc/developer-guide/cripts/cripts-urls.en.rst      |   2 +-
 doc/developer-guide/cripts/index.en.rst            |   1 +
 doc/developer-guide/debugging/index.en.rst         |   1 +
 doc/developer-guide/debugging/tracing.en.rst       |  72 ++
 example/cripts/example1.cc                         |   2 +-
 example/cripts/{example1.cc => example2.cc}        | 141 ++-
 include/cripts/Connections.hpp                     |  75 +-
 include/cripts/Context.hpp                         |  67 +-
 include/cripts/Epilogue.hpp                        |  46 +-
 include/cripts/Error.hpp                           |   6 +-
 include/cripts/Headers.hpp                         |  36 +-
 include/cripts/Preamble.hpp                        |  16 +
 include/cripts/Urls.hpp                            | 101 ++-
 include/iocore/cache/Cache.h                       |  25 +-
 include/iocore/eventsystem/ConfigProcessor.h       |   2 +-
 include/iocore/eventsystem/VIO.h                   |  19 -
 include/iocore/hostdb/HostDBProcessor.h            |   3 -
 include/iocore/net/Net.h                           |   4 +-
 include/iocore/net/NetVConnection.h                |   9 +-
 include/iocore/net/TLSBasicSupport.h               |   5 +
 include/iocore/net/TLSSNISupport.h                 |  24 +-
 include/iocore/net/YamlSNIConfig.h                 |   4 +
 include/mgmt/rpc/handlers/server/Server.h          |   2 +
 include/proxy/FetchSM.h                            |   6 +
 include/proxy/ParentSelection.h                    |   2 +-
 include/proxy/PluginHttpConnect.h                  |   1 +
 include/proxy/hdrs/HTTP.h                          | 136 +--
 include/proxy/hdrs/HdrToken.h                      |   3 +
 include/proxy/hdrs/MIME.h                          | 608 +++++--------
 include/proxy/hdrs/XPACK.h                         |  15 +-
 include/proxy/http/Http1Transaction.h              |   6 +-
 include/proxy/http/HttpCacheSM.h                   |  47 +-
 include/proxy/http/HttpConfig.h                    |   7 +-
 include/proxy/http/HttpTransact.h                  |   2 -
 include/proxy/http/HttpTunnel.h                    |  20 +-
 .../proxy/http/remap/NextHopSelectionStrategy.h    |   9 +-
 include/proxy/http2/HPACK.h                        |   4 +-
 include/proxy/shared/DiagsConfig.h                 |   2 +-
 include/records/RecCore.h                          | 165 ++--
 include/records/RecYAMLDefs.h                      |   4 +-
 include/ts/apidefs.h.in                            |   1 +
 include/tscore/CryptoHash.h                        |   4 +-
 include/tscore/ink_inet.h                          |  12 +
 include/tscore/ink_memory.h                        |  66 ++
 lib/swoc/include/swoc/MemArena.h                   |  40 +
 lib/swoc/include/swoc/TextView.h                   |   4 +-
 lib/swoc/src/MemArena.cc                           |   6 +-
 lib/swoc/src/swoc_ip.cc                            |   4 +-
 .../cache_range_requests/cache_range_requests.cc   | 118 ++-
 plugins/compress/configuration.cc                  |   2 +
 plugins/compress/configuration.h                   |   2 +-
 plugins/compress/debug_macros.h                    |   6 +-
 plugins/esi/fetcher/HttpDataFetcherImpl.cc         |   2 +
 plugins/esi/fetcher/HttpDataFetcherImpl.h          |   1 +
 plugins/experimental/CMakeLists.txt                |   5 +-
 plugins/experimental/ja4_fingerprint/plugin.cc     |  20 +-
 plugins/experimental/memcache/tsmemcache.cc        |   2 +-
 plugins/experimental/otel_tracer/CMakeLists.txt    |  14 +-
 plugins/experimental/uri_signing/common.h          |   2 +-
 plugins/experimental/wasm/CMakeLists.txt           |  23 +-
 plugins/experimental/wasm/lib/CMakeLists.txt       |  10 +
 .../wasm/lib/README.proxy-wasm-cpp-host.md         |   4 +
 .../wasm/lib/include/proxy-wasm/context.h          |   4 +-
 .../lib/include/proxy-wasm/context_interface.h     |   5 +-
 .../wasm/lib/include/proxy-wasm/exports.h          |  10 +-
 .../wasm/lib/include/proxy-wasm/pairs_util.h       |   1 +
 .../experimental/wasm/lib/include/proxy-wasm/sdk.h |  50 ++
 .../wasm/lib/include/proxy-wasm/vm_id_handle.h     |   4 +-
 .../wasm/lib/include/proxy-wasm/wasm.h             |   3 +-
 .../wasm/lib/include/proxy-wasm/wasm_api_impl.h    |   4 +-
 .../wasm/lib/include/proxy-wasm/wasm_vm.h          |   4 +-
 .../wasm/lib/include/proxy-wasm/word.h             |   4 +-
 plugins/experimental/wasm/lib/src/exports.cc       |  25 +
 plugins/experimental/wasm/lib/src/wamr/wamr.cc     |  33 +-
 plugins/experimental/wasm/lib/src/wasm.cc          |   5 +-
 plugins/experimental/wasm/lib/src/wasmtime/types.h |   2 +-
 .../experimental/wasm/lib/src/wasmtime/wasmtime.cc |   6 +-
 plugins/header_rewrite/CMakeLists.txt              |   2 +-
 plugins/header_rewrite/condition.cc                |  45 +-
 plugins/header_rewrite/condition.h                 |   8 +-
 plugins/header_rewrite/conditions.cc               | 193 ++--
 plugins/header_rewrite/conditions.h                | 221 +++--
 plugins/header_rewrite/factory.cc                  |   5 +-
 plugins/header_rewrite/header_rewrite.cc           |   3 +-
 plugins/header_rewrite/lulu.h                      |   3 +
 plugins/header_rewrite/matcher.cc                  | 110 ++-
 plugins/header_rewrite/matcher.h                   | 266 ++++--
 plugins/header_rewrite/operators.cc                |  53 +-
 plugins/header_rewrite/operators.h                 |  30 +
 plugins/header_rewrite/parser.cc                   |   1 +
 plugins/header_rewrite/parser.h                    |  51 ++
 plugins/header_rewrite/regex_helper.cc             |   1 +
 plugins/header_rewrite/regex_helper.h              |   2 -
 plugins/header_rewrite/resources.cc                |   4 +
 plugins/header_rewrite/resources.h                 |   5 +-
 plugins/header_rewrite/statement.cc                |  22 +
 plugins/header_rewrite/statement.h                 |  22 +-
 plugins/ja3_fingerprint/ja3_fingerprint.cc         |  15 +-
 plugins/lua/ts_lua_http_config.cc                  |   2 +
 plugins/origin_server_auth/origin_server_auth.cc   |  43 +-
 plugins/prefetch/fetch.cc                          |   9 +
 plugins/slice/Config.cc                            |  12 +-
 plugins/slice/Config.h                             |   1 +
 plugins/slice/slice.cc                             |   8 +-
 plugins/slice/slice.h                              |   2 +-
 plugins/slice/util.cc                              |  20 +
 rc/CMakeLists.txt                                  |   7 +-
 src/api/InkAPI.cc                                  |  96 +-
 src/api/InkAPIInternal.cc                          | 294 +++----
 src/api/InkAPITest.cc                              |  14 +-
 src/api/InkIOCoreAPI.cc                            |   2 +-
 src/cripts/Connections.cc                          |  57 +-
 src/cripts/Context.cc                              |  28 +-
 src/cripts/Error.cc                                |   7 +-
 src/cripts/Headers.cc                              | 123 +--
 src/cripts/Plugins.cc                              |   2 +-
 src/cripts/Urls.cc                                 | 229 ++---
 src/iocore/aio/AIO.cc                              |  13 +-
 src/iocore/aio/test_AIO.cc                         |   2 +-
 src/iocore/cache/Cache.cc                          | 112 ++-
 src/iocore/cache/CacheDir.cc                       |   3 +-
 src/iocore/cache/CacheHosting.cc                   |  25 +-
 src/iocore/cache/CacheProcessor.cc                 |  66 +-
 src/iocore/cache/CacheRead.cc                      |   2 +-
 src/iocore/cache/CacheTest.cc                      |   4 +-
 src/iocore/cache/CacheVC.cc                        |  13 +-
 src/iocore/cache/CacheVC.h                         |   3 +-
 src/iocore/cache/CacheWrite.cc                     |   2 +-
 src/iocore/cache/HttpTransactCache.cc              |  88 +-
 src/iocore/cache/P_CacheHosting.h                  |   6 +-
 src/iocore/cache/P_CacheInternal.h                 |  20 +-
 src/iocore/cache/PreservationTable.cc              |   4 +-
 src/iocore/cache/PreservationTable.h               |   2 +-
 src/iocore/cache/RamCacheLRU.cc                    |  13 +-
 src/iocore/cache/Stripe.h                          |   4 +
 src/iocore/cache/StripeSM.cc                       |   2 +-
 src/iocore/cache/StripeSM.h                        |   5 +-
 src/iocore/cache/unit_tests/main.cc                |   2 +-
 src/iocore/cache/unit_tests/stub.cc                |   5 +
 .../cache/unit_tests/test_Alternate_L_to_S.cc      |   4 +-
 .../unit_tests/test_Alternate_L_to_S_remove_L.cc   |   6 +-
 .../unit_tests/test_Alternate_L_to_S_remove_S.cc   |   6 +-
 .../cache/unit_tests/test_Alternate_S_to_L.cc      |   4 +-
 .../unit_tests/test_Alternate_S_to_L_remove_L.cc   |   6 +-
 .../unit_tests/test_Alternate_S_to_L_remove_S.cc   |   6 +-
 src/iocore/cache/unit_tests/test_RWW.cc            |   2 +-
 src/iocore/cache/unit_tests/test_Update_header.cc  |   2 +-
 src/iocore/dns/DNS.cc                              |  40 +-
 src/iocore/dns/SplitDNS.cc                         |   2 +-
 src/iocore/eventsystem/ConfigProcessor.cc          |   5 +-
 src/iocore/eventsystem/EventSystem.cc              |  26 +-
 src/iocore/eventsystem/UnixEventProcessor.cc       |   4 +-
 src/iocore/eventsystem/UnixSocket.cc               |   3 +-
 src/iocore/hostdb/HostDB.cc                        |  51 +-
 src/iocore/net/Net.cc                              |  37 +-
 src/iocore/net/NetHandler.cc                       |  18 +-
 src/iocore/net/OCSPStapling.cc                     |  10 +-
 src/iocore/net/P_NetAccept.h                       |   5 +-
 src/iocore/net/P_OCSPStapling.h                    |   7 +-
 src/iocore/net/P_SSLCertLookup.h                   |   4 +-
 src/iocore/net/P_UnixNet.h                         |   3 +-
 src/iocore/net/ProxyProtocol.cc                    |  16 +-
 src/iocore/net/QUICNetProcessor.cc                 |   3 +-
 src/iocore/net/QUICNetVConnection.cc               |   1 +
 src/iocore/net/SNIActionPerformer.cc               |  31 +
 src/iocore/net/SNIActionPerformer.h                |  31 +
 src/iocore/net/SSLConfig.cc                        | 243 ++---
 src/iocore/net/SSLNetProcessor.cc                  |   8 +-
 src/iocore/net/SSLNetVConnection.cc                |   6 +-
 src/iocore/net/SSLUtils.cc                         |  26 +-
 src/iocore/net/Server.cc                           |   8 +-
 src/iocore/net/Socks.cc                            |  35 +-
 src/iocore/net/TLSBasicSupport.cc                  |  49 ++
 src/iocore/net/TLSSNISupport.cc                    |  27 +-
 src/iocore/net/UnixNet.cc                          |   2 +-
 src/iocore/net/UnixNetAccept.cc                    |  16 +-
 src/iocore/net/UnixNetProcessor.cc                 |   7 +-
 src/iocore/net/UnixNetVConnection.cc               |   2 +-
 src/iocore/net/UnixUDPNet.cc                       |  12 +-
 src/iocore/net/YamlSNIConfig.cc                    |  16 +
 src/iocore/net/libinknet_stub.cc                   |   5 +
 src/iocore/net/quic/QUICConfig.cc                  | 106 ++-
 src/iocore/net/unit_tests/test_ProxyProtocol.cc    |  34 +
 src/mgmt/config/AddConfigFilesHere.cc              |   5 +-
 src/mgmt/config/FileManager.cc                     |   6 +-
 src/mgmt/rpc/handlers/server/Server.cc             |  23 +
 src/mgmt/rpc/handlers/storage/Storage.cc           |   4 +-
 src/proxy/CacheControl.cc                          |   2 +-
 src/proxy/ControlBase.cc                           |   5 +-
 src/proxy/FetchSM.cc                               |  24 +-
 src/proxy/HostStatus.cc                            |   2 +-
 src/proxy/IPAllow.cc                               |   2 +-
 src/proxy/ParentSelection.cc                       |  34 +-
 src/proxy/Plugin.cc                                |  32 +-
 src/proxy/PluginHttpConnect.cc                     |   6 +
 src/proxy/ReverseProxy.cc                          |   8 +-
 src/proxy/Transform.cc                             |  12 +-
 src/proxy/hdrs/HTTP.cc                             | 112 +--
 src/proxy/hdrs/HdrToken.cc                         |  25 +-
 src/proxy/hdrs/HeaderValidator.cc                  |  32 +-
 src/proxy/hdrs/MIME.cc                             | 979 +++++++++------------
 src/proxy/hdrs/URL.cc                              |  84 +-
 src/proxy/hdrs/VersionConverter.cc                 |  83 +-
 src/proxy/hdrs/XPACK.cc                            |   7 +-
 src/proxy/hdrs/unit_tests/test_HdrUtils.cc         |  24 +-
 src/proxy/hdrs/unit_tests/test_Hdrs.cc             |  75 +-
 src/proxy/hdrs/unit_tests/test_HeaderValidator.cc  |   4 +-
 src/proxy/hdrs/unit_tests/test_Huffmancode.cc      |   4 +-
 src/proxy/hdrs/unit_tests/test_XPACK.cc            |   7 +
 src/proxy/hdrs/unit_tests/test_mime.cc             |  98 +--
 src/proxy/http/Http1ClientSession.cc               |   5 +-
 src/proxy/http/HttpBodyFactory.cc                  |  52 +-
 src/proxy/http/HttpCacheSM.cc                      |  51 +-
 src/proxy/http/HttpConfig.cc                       | 140 ++-
 src/proxy/http/HttpProxyServerMain.cc              |  16 +-
 src/proxy/http/HttpSM.cc                           | 217 ++---
 src/proxy/http/HttpSessionManager.cc               |  27 +-
 src/proxy/http/HttpTransact.cc                     | 419 +++++----
 src/proxy/http/HttpTransactHeaders.cc              | 104 +--
 src/proxy/http/HttpTunnel.cc                       |  79 +-
 src/proxy/http/PreWarmConfig.cc                    |   6 +-
 src/proxy/http/remap/NextHopSelectionStrategy.cc   |   2 +-
 src/proxy/http/remap/PluginFactory.cc              |   2 +-
 src/proxy/http/remap/RemapConfig.cc                |   8 +-
 src/proxy/http/remap/RemapProcessor.cc             |  72 +-
 src/proxy/http/remap/UrlRewrite.cc                 |  75 +-
 .../http/remap/unit-tests/nexthop_test_stubs.cc    |   3 +-
 .../http/remap/unit-tests/nexthop_test_stubs.h     |   1 -
 src/proxy/http/remap/unit-tests/test_PluginDso.cc  |   8 +-
 src/proxy/http/unit_tests/test_HttpTransact.cc     |  91 +-
 src/proxy/http2/HTTP2.cc                           |  76 +-
 src/proxy/http2/Http2ConnectionState.cc            |   8 +-
 src/proxy/http2/Http2Stream.cc                     |   7 +-
 src/proxy/http2/test_HPACK.cc                      |   8 +-
 src/proxy/http2/unit_tests/test_HTTP2.cc           |  16 +-
 .../http2/unit_tests/test_HpackIndexingTable.cc    |   7 +-
 src/proxy/http3/Http3Config.cc                     |  10 +-
 src/proxy/http3/QPACK.cc                           |   4 +-
 src/proxy/http3/test/test_QPACK.cc                 |   4 +-
 src/proxy/logging/Log.cc                           |  15 +-
 src/proxy/logging/LogAccess.cc                     |  72 +-
 src/proxy/logging/LogConfig.cc                     |  87 +-
 .../logging/unit-tests/benchmark_LogObject.cc      |   2 +-
 src/proxy/shared/DiagsConfig.cc                    |  92 +-
 src/records/RecConfigParse.cc                      |   2 +-
 src/records/RecCore.cc                             | 234 ++---
 src/records/RecHttp.cc                             |  20 +-
 src/records/RecYAMLDecoder.cc                      |  76 +-
 src/records/RecordsConfig.cc                       |   6 +-
 src/shared/overridable_txn_vars.cc                 |   1 +
 src/traffic_crashlog/traffic_crashlog.cc           |   9 +-
 src/traffic_ctl/CtrlCommands.cc                    |  10 +
 src/traffic_ctl/CtrlCommands.h                     |   3 +
 src/traffic_ctl/CtrlPrinters.cc                    |   7 +-
 src/traffic_ctl/CtrlPrinters.h                     |   9 +
 src/traffic_ctl/FileConfigCommand.cc               |   3 +-
 src/traffic_ctl/jsonrpc/CtrlRPCRequests.h          |   9 +
 src/traffic_ctl/traffic_ctl.cc                     |  12 +-
 src/traffic_layout/engine.cc                       |   3 +-
 src/traffic_quic/traffic_quic.cc                   |   5 +
 src/traffic_server/Crash.cc                        |   5 +-
 src/traffic_server/RpcAdminPubHandlers.cc          |   6 +-
 src/traffic_server/traffic_server.cc               | 250 +++---
 src/traffic_top/stats.h                            |  11 +-
 src/tscore/ink_file.cc                             |   4 +
 src/tscore/ink_queue.cc                            |   1 +
 tests/CMakeLists.txt                               |   9 +-
 tests/README.md                                    |   2 +-
 tests/autest.sh.in                                 |   2 +-
 tests/gold_tests/autest-site/curl.test.ext         |  76 ++
 tests/gold_tests/autest-site/init.cli.ext          |   2 +
 tests/gold_tests/autest-site/setup.cli.ext         |   1 +
 .../gold_tests/autest-site/trafficserver.test.ext  |   9 +
 tests/gold_tests/basic/basic.test.py               |   2 +-
 tests/gold_tests/basic/config.test.py              |   2 +-
 tests/gold_tests/basic/copy_config.test.py         |   4 +-
 tests/gold_tests/basic/copy_config2.test.py        |   4 +-
 tests/gold_tests/bigobj/bigobj.test.py             |  22 +-
 tests/gold_tests/cache/background_fill.test.py     |  33 +-
 tests/gold_tests/cache/cache-control.test.py       |   5 +-
 .../cache/cache-generation-clear.test.py           |  25 +-
 .../cache/cache-generation-disjoint.test.py        |  30 +-
 .../cache/disjoint-wait-for-cache.test.py          |  30 +-
 .../gold_tests/cache/negative-revalidating.test.py |  77 +-
 .../replay/negative-revalidating-list.replay.yaml  | 150 ++++
 .../chunked_encoding/bad_chunked_encoding.test.py  |  10 +-
 .../chunked_encoding/chunked_encoding.test.py      |  14 +-
 .../chunked_encoding/chunked_encoding_h2.test.py   |  16 +-
 .../replays/malformed_chunked_header.replay.yaml   |  89 ++
 tests/gold_tests/connect/connect.test.py           |   4 +-
 .../gold_tests/connect/gold/connect_0_stderr.gold  |   2 -
 tests/gold_tests/continuations/double.test.py      |   6 +-
 tests/gold_tests/continuations/double_h2.test.py   |   6 +-
 tests/gold_tests/continuations/openclose.test.py   |   6 +-
 .../gold_tests/continuations/openclose_h2.test.py  |   6 +-
 tests/gold_tests/continuations/session_id.test.py  |  10 +-
 tests/gold_tests/cripts/cripts.test.py             |  25 +-
 tests/gold_tests/dns/splitdns.test.py              |   4 +-
 tests/gold_tests/early_hints/early_hints.test.py   |   4 +-
 .../gold_tests/forward_proxy/forward_proxy.test.py |   4 +-
 tests/gold_tests/h2/h2disable.test.py              |   7 +-
 .../h2/h2disable_no_accept_threads.test.py         |   7 +-
 tests/gold_tests/h2/h2enable.test.py               |   9 +-
 .../h2/h2enable_no_accept_threads.test.py          |   7 +-
 tests/gold_tests/h2/http2.test.py                  |  12 +-
 tests/gold_tests/h2/http2_priority.test.py         |   2 +-
 tests/gold_tests/h2/httpbin.test.py                |  13 +-
 tests/gold_tests/headers/accept_webp.test.py       |  15 +-
 .../gold_tests/headers/cache_and_req_body.test.py  |  10 +-
 tests/gold_tests/headers/cachedIMSRange.test.py    |  56 +-
 tests/gold_tests/headers/field_name_space.test.py  |   3 +-
 tests/gold_tests/headers/forwarded.test.py         |  36 +-
 .../headers/good_request_after_bad.test.py         |   7 +-
 tests/gold_tests/headers/hsts.test.py              |   8 +-
 tests/gold_tests/headers/normalize_ae.test.py      |  14 +-
 tests/gold_tests/headers/range.test.py             |  26 +-
 tests/gold_tests/headers/syntax.test.py            |  27 +-
 tests/gold_tests/headers/via.test.py               |  25 +-
 tests/gold_tests/ip_allow/ip_allow.test.py         |  11 +-
 tests/gold_tests/logging/all_headers.test.py       |   6 +-
 tests/gold_tests/logging/custom-log.test.py        |  16 +-
 tests/gold_tests/logging/log-field-json.test.py    |  16 +-
 tests/gold_tests/logging/log-field.test.py         |   6 +-
 tests/gold_tests/logging/log-filenames.test.py     |   4 +-
 tests/gold_tests/logging/log_retention.test.py     |  24 +-
 tests/gold_tests/logging/new_log_flds.test.py      |  16 +-
 tests/gold_tests/logging/pqsi-pqsp.test.py         |   4 +-
 .../parent_config/parent_config_dest_ip.test.py    |   4 +-
 .../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                    |   6 +-
 .../zzz_strategies_peer2.test.py                   |   8 +-
 .../null_transform/null_transform.test.py          |   4 +-
 .../per_server_connection_max.test.py              |   6 +-
 tests/gold_tests/parent_proxy/parent-retry.test.py |   2 +-
 .../pluginTest/TSVConnFd/TSVConnFd.test.py         |   4 +-
 .../cache_range_requests.test.py                   |  31 +-
 ...range_requests_cache_complete_responses.test.py |  32 +-
 .../cache_range_requests_cachekey.test.py          |   8 +-
 .../cache_range_requests_cachekey_global.test.py   |   4 +-
 .../cache_range_requests_ident.test.py             | 195 ++++
 .../cache_range_requests_ims.test.py               |  10 +-
 .../pluginTest/cert_update/cert_update.test.py     |   9 +-
 .../client_context_dump.test.py                    |   2 +-
 .../pluginTest/compress/compress.test.py           |  36 +-
 tests/gold_tests/pluginTest/compress/greplog.sh    |   4 +-
 .../pluginTest/cookie_remap/bucketcookie.test.py   |  14 +-
 .../cookie_remap/collapseslashes.test.py           |   7 +-
 .../pluginTest/cookie_remap/connector.test.py      |  14 +-
 .../pluginTest/cookie_remap/existscookie.test.py   |  14 +-
 .../pluginTest/cookie_remap/matchcookie.test.py    |  14 +-
 .../pluginTest/cookie_remap/matchuri.test.py       |  14 +-
 .../cookie_remap/notexistscookie.test.py           |  14 +-
 .../cookie_remap/pcollapseslashes.test.py          |   7 +-
 .../pluginTest/cookie_remap/psubstitute.test.py    |  28 +-
 .../pluginTest/cookie_remap/regexcookie.test.py    |  14 +-
 .../pluginTest/cookie_remap/setstatus.test.py      |  14 +-
 .../pluginTest/cookie_remap/subcookie.test.py      |  10 +-
 .../pluginTest/cookie_remap/substitute.test.py     |  28 +-
 tests/gold_tests/pluginTest/esi/esi.test.py        | 126 +--
 tests/gold_tests/pluginTest/esi/esi_304.test.py    |  14 +-
 .../pluginTest/header_rewrite/gold/ext-sets.gold   |  10 +
 .../header_rewrite/gold/header_rewrite-client.gold |   2 +-
 .../header_rewrite/header_rewrite.test.py          |   4 +-
 .../header_rewrite_cond_cache.test.py              |  10 +-
 .../header_rewrite_cond_method.test.py             |   9 +-
 .../header_rewrite_cond_ssn_txn_count.test.py      |  12 +-
 .../header_rewrite/header_rewrite_l_value.test.py  |   4 +-
 .../header_rewrite_set_body_from.test.py           |  15 +-
 .../header_rewrite/header_rewrite_url.test.py      |  32 +-
 .../header_rewrite/header_rewrite_url_glob.test.py |   4 +-
 .../header_rewrite/rules/rule_client.conf          |  12 +-
 .../header_rewrite/rules/rule_cond_method.conf     |   2 +-
 .../ja3_fingerprint/ja3_fingerprint.test.py        |   4 +-
 .../ja3_fingerprint_global.replay.yaml             |   3 +
 .../ja3_fingerprint_remap.replay.yaml              |   4 +
 .../ja4_fingerprint/ja4_fingerprint.replay.yaml    |   1 +
 .../ja4_fingerprint/ja4_fingerprint.test.py        |   3 +-
 .../pluginTest/lua/lua_client_hook.test.py         |   2 +-
 .../pluginTest/lua/lua_debug_tags.test.py          |   4 +-
 .../pluginTest/lua/lua_header_table.test.py        |   2 +-
 .../pluginTest/lua/lua_states_stats.test.py        |   4 +-
 .../pluginTest/lua/lua_watermark.test.py           |   2 +-
 .../pluginTest/money_trace/money_trace.test.py     |  28 +-
 .../money_trace/money_trace_global.test.py         |   8 +-
 .../origin_server_auth/origin_server_auth.test.py  |   9 +-
 .../rules/gcp-parse-test.test_input                |  31 -
 .../polite_hook_wait/polite_hook_wait.test.py      |  10 +-
 .../pluginTest/prefetch/prefetch_bignum.test.py    |   3 +-
 .../pluginTest/prefetch/prefetch_cmcd.test.py      |  24 +-
 .../pluginTest/prefetch/prefetch_overflow.test.py  |   3 +-
 .../pluginTest/prefetch/prefetch_simple.test.py    |   2 +-
 .../pluginTest/regex_remap/regex_remap.test.py     |  12 +-
 .../regex_revalidate/regex_revalidate.test.py      |  20 +-
 .../regex_revalidate/regex_revalidate_miss.test.py |  22 +-
 .../pluginTest/remap_stats/remap_stats.test.py     |   4 +-
 .../remap_stats/remap_stats_post.test.py           |   4 +-
 .../pluginTest/slice/gold/slice_crr_ident.gold     |  13 +
 .../pluginTest/slice/gold/slice_ident.gold         |  15 +
 tests/gold_tests/pluginTest/slice/slice.test.py    |  22 +-
 .../pluginTest/slice/slice_conditional.test.py     |  14 +-
 .../pluginTest/slice/slice_crr_ident.test.py       | 222 +++++
 .../pluginTest/slice/slice_error.test.py           |  10 +-
 .../pluginTest/slice/slice_ident.test.py           | 188 ++++
 .../pluginTest/slice/slice_prefetch.test.py        |  14 +-
 .../pluginTest/slice/slice_regex.test.py           |  10 +-
 .../pluginTest/slice/slice_selfhealing.test.py     |  99 ++-
 .../pluginTest/sslheaders/sslheaders.test.py       |   4 +-
 .../stats_over_http/stats_over_http.test.py        |   2 +-
 .../pluginTest/test_hooks/body_buffer.test.py      |   4 +-
 .../pluginTest/test_hooks/hook_add.test.py         |   2 +-
 .../test_hooks/ssn_start_delay_hook.test.py        |   2 +-
 .../pluginTest/test_hooks/test_hooks.test.py       |  10 +-
 .../pluginTest/tsapi/test_TSHttpSsnInfo.test.py    |  14 +-
 .../tsapi/test_TSHttpSsnInfo_nghttp0.gold          |  18 +-
 tests/gold_tests/pluginTest/tsapi/tsapi.test.py    |   9 +-
 .../pluginTest/uri_signing/uri_signing.test.py     |  61 +-
 .../gold_tests/pluginTest/url_sig/url_sig.test.py  |  70 +-
 tests/gold_tests/post/post-continue.test.py        |  80 +-
 tests/gold_tests/post/post-early-return.test.py    |  10 +-
 .../post_slow_server/post_slow_server.test.py      |   4 +-
 .../post_slow_server_max_requests_in.test.py       |   2 +-
 .../proxy_serve_stale_dns_fail.test.py             |  16 +-
 .../redirect/number_of_redirects.test.py           |   4 +-
 tests/gold_tests/redirect/redirect_post.test.py    |   5 +-
 .../gold_tests/remap/basic_conf_remap_yaml.test.py |   5 +-
 tests/gold_tests/remap/regex_map.test.py           |   2 +-
 tests/gold_tests/remap/remap_http.test.py          |  40 +-
 tests/gold_tests/remap/remap_https.test.py         |  23 +-
 tests/gold_tests/remap/remap_ip_resolve.test.py    |   4 +-
 tests/gold_tests/remap/remap_ws.test.py            |  15 +-
 .../session_sharing/session_match.test.py          |   8 +-
 tests/gold_tests/slow_post/server_abort.test.py    |   2 +-
 tests/gold_tests/timeout/active_timeout.test.py    |   8 +-
 tests/gold_tests/timeout/conn_timeout.test.py      |   4 +-
 tests/gold_tests/timeout/inactive_timeout.test.py  |   6 +-
 tests/gold_tests/timeout/tls_conn_timeout.test.py  |  12 +-
 tests/gold_tests/tls/allow-plain.test.py           |  15 +-
 tests/gold_tests/tls/ssl/passphrase.key            |  56 +-
 tests/gold_tests/tls/ssl/passphrase.pem            |  46 +-
 tests/gold_tests/tls/ssl/passphrase2.key           |  56 +-
 tests/gold_tests/tls/ssl/passphrase2.pem           |  46 +-
 tests/gold_tests/tls/ssl_key_dialog.test.py        |   8 +-
 tests/gold_tests/tls/ssl_multicert_loader.test.py  |   6 +-
 tests/gold_tests/tls/tls_0rtt_server.test.py       |   2 +-
 tests/gold_tests/tls/tls_bad_alpn.test.py          |   2 +-
 .../tls/tls_check_cert_select_plugin.test.py       |  20 +-
 .../tls/tls_check_cert_selection.test.py           |  13 +-
 .../tls/tls_check_cert_selection_reload.test.py    |  16 +-
 tests/gold_tests/tls/tls_client_cert.test.py       |  24 +-
 tests/gold_tests/tls/tls_client_cert2.test.py      |  16 +-
 .../gold_tests/tls/tls_client_cert2_plugin.test.py |  16 +-
 .../tls/tls_client_cert_override.test.py           |   8 +-
 .../tls/tls_client_cert_override_plugin.test.py    |  14 +-
 .../gold_tests/tls/tls_client_cert_plugin.test.py  |  24 +-
 tests/gold_tests/tls/tls_client_verify.test.py     |  61 +-
 tests/gold_tests/tls/tls_client_verify2.test.py    |  49 +-
 tests/gold_tests/tls/tls_client_verify3.test.py    |  36 +-
 tests/gold_tests/tls/tls_client_versions.test.py   |  20 +-
 .../tls/tls_client_versions_minmax.test.py         |  36 +-
 tests/gold_tests/tls/tls_engine.test.py            |   2 +-
 .../gold_tests/tls/tls_hooks_client_verify.test.py |  15 +-
 tests/gold_tests/tls/tls_hooks_verify.test.py      |   7 +-
 tests/gold_tests/tls/tls_keepalive.test.py         |  18 +-
 tests/gold_tests/tls/tls_ocsp.test.py              |   5 +-
 .../tls/tls_origin_session_reuse.test.py           |  12 +-
 .../tls/tls_partial_blind_tunnel.test.py           |   3 +-
 tests/gold_tests/tls/tls_sni_host_policy.test.py   |  42 +-
 tests/gold_tests/tls/tls_sni_with_port.test.py     |  27 +-
 tests/gold_tests/tls/tls_sni_yaml_reload.test.py   |  10 +-
 tests/gold_tests/tls/tls_tunnel.test.py            |  28 +-
 tests/gold_tests/tls/tls_tunnel_forward.test.py    |   8 +-
 tests/gold_tests/tls/tls_verify.test.py            |  10 +-
 tests/gold_tests/tls/tls_verify2.test.py           |  12 +-
 tests/gold_tests/tls/tls_verify3.test.py           |  14 +-
 tests/gold_tests/tls/tls_verify4.test.py           |   6 +-
 tests/gold_tests/tls/tls_verify_base.test.py       |   8 +-
 .../gold_tests/tls/tls_verify_ca_override.test.py  |   8 +-
 .../gold_tests/tls/tls_verify_not_pristine.test.py |   4 +-
 tests/gold_tests/tls/tls_verify_override.test.py   |  27 +-
 .../tls/tls_verify_override_base.test.py           |  28 +-
 .../gold_tests/tls/tls_verify_override_sni.test.py |   6 +-
 tests/gold_tests/tls_hooks/tls_hooks.test.py       |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks10.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks11.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks12.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks13.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks14.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks15.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks16.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks17.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks18.test.py     |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks2.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks3.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks4.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks6.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks7.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks8.test.py      |   2 +-
 tests/gold_tests/tls_hooks/tls_hooks9.test.py      |   2 +-
 .../traffic_ctl/remap_inc/remap_inc.test.py        |   2 +-
 .../traffic_ctl/traffic_ctl_config_output.test.py  | 146 +--
 .../traffic_ctl_server_output.test.py}             |  46 +-
 ...ig_output.test.py => traffic_ctl_test_utils.py} | 169 ++--
 tests/gold_tests/tunnel/tunnel_transform.test.py   |   4 +-
 tests/gold_tests/tunnel/txn_type.test.py           |  12 +-
 tools/build_boringssl_h3_tools.sh                  |  24 +-
 tools/build_openssl_h3_tools.sh                    |  14 +-
 tools/records/convert2yaml.py                      |  12 +-
 542 files changed, 8784 insertions(+), 6084 deletions(-)

diff --cc src/iocore/net/SSLConfig.cc
index 7a2b566993,00a53b700f..3439266180
--- a/src/iocore/net/SSLConfig.cc
+++ b/src/iocore/net/SSLConfig.cc
@@@ -414,28 -422,43 +412,36 @@@ SSLConfigParams::initialize(
    // we keep it unless "server_max_early_data" is higher.
    server_recv_max_early_data = std::max(server_max_early_data, 
TLSEarlyDataSupport::DEFAULT_MAX_EARLY_DATA_SIZE);
  
-   REC_ReadConfigStringAlloc(serverCertChainFilename, 
"proxy.config.ssl.server.cert_chain.filename");
-   REC_ReadConfigStringAlloc(serverCertRelativePath, 
"proxy.config.ssl.server.cert.path");
-   set_paths_helper(serverCertRelativePath, nullptr, &serverCertPathOnly, 
nullptr);
-   ats_free(serverCertRelativePath);
+   if (auto 
rec_str{RecGetRecordStringAlloc("proxy.config.ssl.server.cert_chain.filename")};
 rec_str) {
+     serverCertChainFilename = ats_stringdup(rec_str);
+   }
  
-   configFilePath = 
ats_stringdup(RecConfigReadConfigPath("proxy.config.ssl.server.multicert.filename"));
-   REC_ReadConfigInteger(configExitOnLoadError, 
"proxy.config.ssl.server.multicert.exit_on_load_fail");
+   {
+     auto 
rec_str{RecGetRecordStringAlloc("proxy.config.ssl.server.cert.path")};
+     auto serverCertRelativePath{ats_as_c_str(rec_str)};
+     set_paths_helper(serverCertRelativePath, nullptr, &serverCertPathOnly, 
nullptr);
+   }
  
-   REC_ReadConfigStringAlloc(ssl_server_private_key_path, 
"proxy.config.ssl.server.private_key.path");
-   set_paths_helper(ssl_server_private_key_path, nullptr, &serverKeyPathOnly, 
nullptr);
-   ats_free(ssl_server_private_key_path);
+   configFilePath        = 
ats_stringdup(RecConfigReadConfigPath("proxy.config.ssl.server.multicert.filename"));
+   configExitOnLoadError = 
RecGetRecordInt("proxy.config.ssl.server.multicert.exit_on_load_fail").value_or(0);
  
-   REC_ReadConfigStringAlloc(ssl_server_ca_cert_filename, 
"proxy.config.ssl.CA.cert.filename");
-   REC_ReadConfigStringAlloc(CACertRelativePath, 
"proxy.config.ssl.CA.cert.path");
+   {
+     auto 
rec_str{RecGetRecordStringAlloc("proxy.config.ssl.server.private_key.path")};
+     auto ssl_server_private_key_path{ats_as_c_str(rec_str)};
+     set_paths_helper(ssl_server_private_key_path, nullptr, 
&serverKeyPathOnly, nullptr);
+   }
  
-   set_paths_helper(CACertRelativePath, ssl_server_ca_cert_filename, 
&serverCACertPath, &serverCACertFilename);
-   ats_free(ssl_server_ca_cert_filename);
-   ats_free(CACertRelativePath);
+   {
+     auto 
pash_str{RecGetRecordStringAlloc("proxy.config.ssl.CA.cert.filename")};
+     auto ssl_server_ca_cert_filename{ats_as_c_str(pash_str)};
+     auto 
filename_str{RecGetRecordStringAlloc("proxy.config.ssl.CA.cert.path")};
+     auto CACertRelativePath{ats_as_c_str(filename_str)};
+     set_paths_helper(CACertRelativePath, ssl_server_ca_cert_filename, 
&serverCACertPath, &serverCACertFilename);
+   }
  
    // SSL session cache configurations
-   REC_ReadConfigInteger(ssl_origin_session_cache, 
"proxy.config.ssl.origin_session_cache.enabled");
-   REC_ReadConfigInteger(ssl_origin_session_cache_size, 
"proxy.config.ssl.origin_session_cache.size");
+   ssl_origin_session_cache      = 
RecGetRecordInt("proxy.config.ssl.origin_session_cache.enabled").value_or(0);
+   ssl_origin_session_cache_size = 
RecGetRecordInt("proxy.config.ssl.origin_session_cache.size").value_or(0);
 -  ssl_session_cache             = 
RecGetRecordInt("proxy.config.ssl.session_cache.value").value_or(0);
 -  ssl_session_cache_size        = 
RecGetRecordInt("proxy.config.ssl.session_cache.size").value_or(0);
 -  ssl_session_cache_num_buckets = 
RecGetRecordInt("proxy.config.ssl.session_cache.num_buckets").value_or(0);
 -  ssl_session_cache_skip_on_contention =
 -    
RecGetRecordInt("proxy.config.ssl.session_cache.skip_cache_on_bucket_contention").value_or(0);
 -  ssl_session_cache_timeout    = 
RecGetRecordInt("proxy.config.ssl.session_cache.timeout").value_or(0);
 -  ssl_session_cache_auto_clear = 
RecGetRecordInt("proxy.config.ssl.session_cache.auto_clear").value_or(0);
  
    SSLConfigParams::origin_session_cache      = ssl_origin_session_cache;
    SSLConfigParams::origin_session_cache_size = ssl_origin_session_cache_size;


Reply via email to