This is an automated email from the ASF dual-hosted git repository. masaori pushed a change to branch quic-latest in repository https://gitbox.apache.org/repos/asf/trafficserver.git.
from c2bc17d Add range check of Http2SettingsIdentifier add c6b7270 Remove useless name from ink_mutex_init. add 25b20bf More NULL to nullptr conversion add 3a8a58c Clang-Tidy cleanup: Bad brace placement in ifdef'd code. add 7dfa864 Add RAII support for ink_mutex. add 9a4aa33 cid 1375841: Replace strncpy with memcpy add bb71401 Require at least one ET_TASK thread add 5b94a62 proxy.config.ssl.number.threads does not exist add c05264f Use our ATS server to proxy for Bintray add b339d53 ProtocolStack - fix user agent side IPv6 detection. add adb998c Documented more detail about TS_HTTP_SEND_REQUEST_HDR_HOOK hook add 4704525 Changes the default for proxy.config.ssl.server.multicert.exit_on_load_fail add 6c67bf0 Rename "ink_mutex_lock" to "ink_scoped_mutex_lock" for better consistency. add 4576555 Removes the cp of clang-format, our ATS can handle the load add 11cc5d4 Allow the tool to apply multiple PRs add c04d7fd PR #2010 follow up. - incorporate OKnet recommendations. - Use ink_scoped_mutex_lock from PR #2014. add 0169ccf TS-4265: Change EventProcessor to use declaration initialization. add a62437a Permissive mode for server verification add 68022cc Via: Enable detail level in VIA protocol stack. add 48cb768 uses AM_C*FLAGS instead of C*FLAGS add 800f69e fix 100-continue add 6521444 fix bg_fill abort when server completed add c128363 Fix SSL handshake problems. add 8dd4aa9 Disable the post_transform retry due to coredump add 51cc066 Break fix. add 649f4e0 volume.config doesn't differentiate http/https add 9e38ee8 Make the default thread stack size global and configurable. add 53d5da0 Update testing extensions add a554692 Prevent traffic_ctl from writing on a socket that is not connected. add 93186e2 esi: remove unnecessary isCacheObjTransformable() add a48fe23 Fix for CID-1375917 add 0b900a6 fix memory leak in SSLInitServerContext add 4a09bf5 HTTP2 non persistent metrics sticking over system crash. add 9c305c2 Doc update: proxy.config.ssl.client.verify.server add 6f0bc84 Prevent potential dispatch of HttpTunnel events to a dead consumer. add 89403ff Cleanup server_entry before do dns lookup add 424bee2 fix memory leak issue with lua plugin add 04f8a18 Coverity 1021734 Uninitialized pointer field add a6c14f0 Move where the HttpSM setup for redirect before going to origin add cd4d6b4 Refactor ProcessManager to stop the poll thread. add 6bcfa08 Simplify ProcessManager message and shutdown handling. add 8c4a0ea Wake the process manager thread on shutdown. add 693839a Improve graceful shutdown. add c696cb3 Document traffic_server signals. add da1ce2c Revert "Add logic to flush gcov data from traffic_server on interrupt." add 0d7a530 Remove a redundant access specifier add 54528f7 Address session/transaction close errors. add 2db2c9f Only use the start pipelines to start branch build add a096d3d fix intermittent mac os parent selection regression test failure. add 5954626 Fix readme formatting add 959ab14 adds autest gitignore enhancements add 15961e7 Ran clang-tidy with modernize-use-using add 92b168d Cleanup after running clang-tidy modernize-use-using add 43e299f Disable cache volume size check for already configured volumes. add 2bbcfe6 Thread class cleanup. For #1997. add 407efa1 coverity fix for buffer_upload plugin add e27c09b Cleanup in EThread. For #1997. add 7799320 coverty 1196454: resource leak in buffer_upload plugin add 7ea644a remove bad check add caf5f69 Add back in length check to fail H2 headers with no name. add f770aaa coverity fixes for esi add a3dc6ad Add active_thread container support to Event Processor. For #1997. add efe4fc8 PR-2073 format fixup. add a82efb7 Issue #1685: Use TS_MILESTONE_UA_BEGIN for cqt* log fields add 63b34dc Fix session-based memory leak. add 4d9279c Revert "TS-4796 Change UnixNetHandler to always bubble up epoll errors to the VConnection" this reverts PRs #1559, #1522 and #947 add 4b42ada Fix Lua metrics configuration reloading. add 72b55ab Do not try to push to the docs tree unless we have permissions add c12d95e Ran unifdef to remove INACTIVITY_TIMEOUT code blocks add de24ebb Gracefully shut down traffic_server on SIGINT. add a3995c0 Fix library linkage for example plugins. add 3580ec8 Add override specifiers to Http2Stream class add c652da9 Fix unintialized request_content_length in HttpSM::state_read_client_request_header add f6d3887 Doc: First sketch of Scalar documentation. add a78a228 TS-4976: Regularize plugins - server_push add b3adf64 1962: Reload keyblock from key file on every config reload add 7c9e456 Via: Revert changes for #1534 and subsequent. add fe24de0 Prevents response body content with a 204 add ab19da3 Add records configuration support to traffic_ctl. add 9cc4212 Add records configuration support to traffic_top. add e4ee12c Switch traffic_top to standard argument processing. add e35c5a9 Fix type cast in bnull_transform plugin add 999ed89 Clarify/expand gzip plugin usage add d0e9277 LogAccessHttp init strlen to 0, not -1 add 36c68bb Update IMS handling table to include INM add 239909b Change textwidth option to 132 so that it corresponds to the line length used by 'make clang-format'. add 2cefc54 Add 7.0.x to the doc version list add 6ecc998 closing http2 state as draining http2 connection add 4dc78ff Add settings for autopep8 add ec2e2d2 Ran autopep8 to python files add de2dcd4 Noncopyable update for C++11 add 1d5c8fc TS-4265: Thread initialization restructuring. add 624be31 Fix error.log message from regex_remap when match uncaptured substring ($n) used in substitution. Gemeral fixes to error messages. RAII updates. Output regular expression from line with error in remap file in error log file. add f389fd5 Add HSTS example to header_rewrite add 5b7e1d9 Autest for ATS test support all configuration layout add 2a112d0 Convert an ink_release_assert into logic to reset the rbio to use the remaining data. add 452a2dc TS-4396: fix number_of_redirections off-by-one add 3540f90 adds clarifications on plugin use add 401ffbe Make proxy.config.http.parent_proxy.per_parent_connect_attempts, proxy.config.http.parent_proxy.connect_attempts_timeout, proxy.config.http.parent_proxy.fail_threshold, and proxy.config.http.parent_proxy.retry_time overridable. add a265b72 TS-4265: Fix NUMA stack support. Add additional comments. add 668528c Methods never defined and value never used add 8960182 Issue 2157: Configuration reload on master is crashing when built with ASAN add 77ad629 Move autest sandbox /var/tmp add 7fe208b adds effective client request url var expansion add 3f22b4a handle 307 and 308 when building redirect response add f5b9f53 Method not implemented and constructor hiding not required add b3c5909 Fix handling read errors in TLS Handshake add 4ca5679 Replace fmin with simple conditional (macOS is unhappy) add 53b9b92 Update H2 priority tree node with a created stream add a61b1f0 Coverity 1371529: Removes unecessary check since we should assert add 858577d have autest make hardlink symlinks before doing a copy add dba225e Don't do strlen on the static table add c0e050c Adds a README section about the tcp_client tool add 566877c add type <Random> to mix nonssl, ssl and h2 requests add 73f7d01 Changed to in-class member initializers and initializing all members add dd65847 Removing enert code: LogFile::do_filesytem_checks() add 9aab3f8 For #2126 - Fix for transform test crash. add 4a4b4e7 The content-type of TRACE response should be message/http. add 8296a25 Add clang-format for the tests directory as well add 3cefdba Memleaking in transform test add 9d41071 Fix race condition in thread startup. add a72b145 Better initialization in Thread.cc. add f684f6b HTTP2 remove window between client stream shutdown and ATS stream counting add aaed3e3 Limit HPACK indexing table size correctly add 693e87f Check padding length of Huffman code strictly add c530a3f Check padding bits of Huffman code strictly add ea60fd3 Fixes transfers for error responses without body add 0fc3833 TS-1257: replace InkHashtable with HashMap to store wilddomains add 91724db TS-4044: The server_vc should be established (writeable) before request transform start. add b01a0f7 Added break so Eclipse doesn't complain add 3686807 Fix UnixUDPNet add 6834429 Fix UDP Echo Server add f43abe5 Fix StringView constructor to not fail on a nulll pointer. add 00cf3d3 YTSATS-1195: Add hook for server cert verification add 0564042 use parsed_hosts_file_ptr only if it has valid value add 1665802 Fix protocol stack to return unknown TLS string instead of elliding it in case of error. add 8226fde Alloc PollCont and UDPNetHandler before call initialize_thread_for_udp_net add 55e576b omits version string when verifying test output add adf906d Fix LIBTCL and HWLOC_LIBS linking for traffic_top for Ubuntu. Based on prior patch TS-3109. add 3387c0f Missing Length if format was set in HttpBodyFactory::fabricate_with_old_api add e62f3d3 SEGV in Diags when we try to use Fatal macro add 191aaef Fix remap redirection with build_error_reponse add e51b5e0 In adjust_sys_settings(), if we try to adjust the NOFILE limit due to (fds_throttle > limit - THROTTLE_FD_HEADROOM), then try to set the new limit to (fds_throttle + THROTTLE_FD_HEADROOM) instead of just (fds_throttle) since the latter will always result in fds_throttle being reduced in check_fd_limit() later. add e7b5a59 Add new logic for copy of Plugin and Bin directory add 36bf446 H2 test with traffic -replay add 84ecfc0 Return 408 response with specified header add f36a04f Architectural description of the Client classes. add eaffae3 Update inactivity if total_written is more than 0 add 294135b set location for client CA cert file add 0ab449a Be less aggressive in calling SSL_shutdown. add 7cb5e40 replace NULL with nullptr add 3cb183b Propagate configure LIBS to tsxs add 8d2712b Add experimental plugin to initiate H2 Server push for preload links. add cbca361 header_rewrite: Add "INBOUND" condition for data on the inbound network connection. add 25650ab IpMap fix - in some cases a range node can be incorrectly re-used, effectively dropping the existing range. This fixes #2250. add b47de39 Removes disabled test; case is covered elsewhere add 4a62837 Fix compile problem with openSSL 1.1. add 0560b1a INT_TO_BOOL shouldn't be called here add 49e8206 Log IP address in case servername is not present add 7426789 Make sure to add resources for all rules in a hook add f75dbf6 Adjusting ssl_read_from_net to read limited amount of data in one go. add be16283 const-ifying the getter functions of HashMap add ebf8143 Issue #2183 Fix openssl 1.1 hang add d28bf77 consfity the get_kys function add 156c218 Add diagram for header_rewrite Hooks add c45be0d Fixed to build on Fedora 26 with gcc7 add c816a80 Fixed debug build on Fedora 26 with gcc7 add 7ebf479 Fix for URL obj leak in HTTP2 server push upon calling TSHttpTxnServerPush #2275 add 0be5cde Do not duplicate logging >= 400 response codes into error.log add 99a42d3 Plugin collapsed_connection - add TSMutexCreate() when calling TSContCreate(). add 0f8e275 Add basic files to use Catch for unit testing add bd255fa Docs: Better python 2/3 compatibility. add fb346e1 TS-4523 - Add pause functionality to the TransformationPlugin interface. add 17342db TS-3692: Remove code associated with proxy.config.url_remap.url_remap_mode. add 6d89c1c Adding a stat page for HTTP connection count add 86d7385 ua_buffer_reader should be released in deallocate_redirect_postdata_buffers add f68361e Rework SSL handshake hooks and add tls_hooks tests. add b9a873b Add pthread.h to pthread_np.h Autoconf check Fixes #1306 add 53a1570 Moved catch and got rid of centralizing unit tests add 23921b2 Add documentation explaining the TLS hooks transitions. add c7fdf6e Can't convert Cache Result to Cache MISS by TSHttpTxnCacheLookupStatusSet add 7996bef Stop sending DNS queries when nameserver is down add 1c9af58 Prevent HSTS headers from including the terminating null byte. add 47a59f0 Update to simplify the case statement add ccc9c6b Remove stale atscppapi/Makefile.am. add 9bdcb17 Add integration tests to ci/regression script. add fb89edb Test: Fix TLS test plugin compile error for Fedora 26. add 9f18c76 Rename tests/getting_started doc. add 2f83a81 Fix weird whitespace in I_VConnection.h. add de461d6 Remove unused function VcTypeCode. add f00a18b remove redundant include add f5b5ff8 H2 Assert fails sometimes at Http2DependencyTree::deactivate add 5817f10 Add basic_string_view add 6f08f53 replace strcpy with ink_strlcpy in select_best_srv add 1708e42 coverity 1021919: Missing break in switch add e8ae4d8 coverity 1196489: Read from pointer after free add 378f03d Fix origin requests to default to HTTP 1.1 add 482b3a8 coverity 1376260: Uninitialized pointer field add bbc99e2 Add example command to generate session ticket add e634659 Leaving History independently so that each state machine can import it No new revisions were added by this update. Summary of changes: .gitignore | 4 + .vimrc | 2 +- Makefile.am | 9 +- ci/jenkins/bin/autest.sh | 4 +- ci/jenkins/bin/clang-format.sh | 11 - ci/jenkins/bin/docs.sh | 4 + ci/jenkins/bin/gh-mirror.sh | 3 +- ci/rat-regex.txt | 1 + ci/regression | 3 +- cmd/Makefile.am | 2 + cmd/traffic_ctl/Makefile.am | 8 +- cmd/traffic_ctl/alarm.cc | 4 +- cmd/traffic_ctl/config.cc | 2 +- cmd/traffic_ctl/traffic_ctl.cc | 14 +- cmd/traffic_ctl/traffic_ctl.h | 19 +- cmd/traffic_manager/Makefile.am | 13 + cmd/traffic_manager/metrics.cc | 58 +- cmd/traffic_manager/metrics.h | 8 + cmd/traffic_manager/test_metrics.cc | 78 + cmd/traffic_manager/traffic_manager.cc | 8 +- cmd/traffic_top/Makefile.am | 9 +- cmd/traffic_top/stats.h | 4 +- cmd/traffic_top/traffic_top.cc | 80 +- configure.ac | 22 +- contrib/python/compare_RecordsConfigcc.py | 51 +- contrib/python/compare_records_config.py | 3 + doc/admin-guide/files/records.config.en.rst | 58 +- doc/admin-guide/files/volume.config.en.rst | 3 +- doc/admin-guide/logging/formatting.en.rst | 1 + .../plugins/collapsed_forwarding.en.rst | 1 - doc/admin-guide/plugins/gzip.en.rst | 31 +- doc/admin-guide/plugins/header_rewrite.en.rst | 143 +- doc/admin-guide/plugins/ts_lua.en.rst | 1 - doc/admin-guide/storage/index.en.rst | 78 +- doc/appendices/command-line/traffic_manager.en.rst | 6 +- doc/appendices/command-line/traffic_server.en.rst | 25 + doc/checkvers.py | 81 +- doc/conf.py | 224 +- .../api/functions/TSClientProtocolStack.en.rst | 2 + .../api/functions/TSHttpOverridableConfig.en.rst | 5 +- doc/developer-guide/api/types/CoreTypes.en.rst | 10 +- doc/developer-guide/api/types/SystemTypes.en.rst | 8 + .../api/types/TSOverridableConfigKey.en.rst | 1 - .../client-session-architecture.en.rst | 118 + doc/developer-guide/index.en.rst | 3 +- .../internal-libraries/index.en.rst | 3 +- .../internal-libraries/scalar.en.rst | 254 + .../continuations/writing-handler-functions.en.rst | 6 + .../hooks-and-transactions/adding-hooks.en.rst | 6 + .../plugins/hooks-and-transactions/index.en.rst | 6 + .../hooks-and-transactions/ssl-hooks.en.rst | 114 + doc/developer-guide/threads-and-events.en.rst | 203 + doc/ext/doxygen.py | 188 +- doc/ext/traffic-server.py | 123 +- .../api/functions/TSHttpOverridableConfig.en.po | 5 - doc/manpages.py | 80 +- .../images/sessions/http1_session_objects.png | Bin 0 -> 13201 bytes .../images/sessions/http2_session_objects.png | Bin 0 -> 16267 bytes doc/static/images/sessions/session_hierarchy.png | Bin 0 -> 9922 bytes .../images/sessions/transaction_hierarchy.png | Bin 0 -> 11260 bytes doc/static/languages.json | 4 +- example/Makefile.am | 58 +- example/bnull_transform/bnull_transform.c | 6 +- example/cache_scan/cache_scan.cc | 2 +- .../DelayTransformationPlugin.cc | 122 + example/disable_http2/disable_http2.cc | 2 +- example/passthru/passthru.cc | 4 +- .../server-push.c => server_push/server_push.c} | 13 +- example/ssl-preaccept/ssl-preaccept.cc | 2 +- iocore/aio/AIO.cc | 4 +- iocore/cache/Cache.cc | 3 +- iocore/cache/CachePages.cc | 2 + iocore/dns/DNS.cc | 12 +- iocore/dns/SplitDNS.cc | 2 +- iocore/eventsystem/I_EThread.h | 43 +- iocore/eventsystem/I_Event.h | 9 +- iocore/eventsystem/I_EventProcessor.h | 176 +- iocore/eventsystem/I_IOBuffer.h | 20 +- iocore/eventsystem/I_Lock.h | 2 +- iocore/eventsystem/I_Processor.h | 9 +- iocore/eventsystem/I_SocketManager.h | 7 +- iocore/eventsystem/I_Thread.h | 33 +- iocore/eventsystem/I_VConnection.h | 28 +- iocore/eventsystem/P_ProtectedQueue.h | 2 +- iocore/eventsystem/P_UnixEThread.h | 22 +- iocore/eventsystem/P_UnixEventProcessor.h | 17 +- iocore/eventsystem/Tasks.cc | 4 +- iocore/eventsystem/Thread.cc | 62 +- iocore/eventsystem/UnixEThread.cc | 37 +- iocore/eventsystem/UnixEventProcessor.cc | 431 +- iocore/hostdb/HostDB.cc | 13 +- iocore/hostdb/P_HostDBProcessor.h | 2 +- iocore/net/I_NetProcessor.h | 15 +- iocore/net/I_NetVConnection.h | 10 +- iocore/net/I_UDPNet.h | 1 + iocore/net/Makefile.am | 32 +- iocore/net/OCSPStapling.cc | 2 +- iocore/net/P_SSLConfig.h | 33 +- iocore/net/P_SSLNetProcessor.h | 6 +- iocore/net/P_SSLNetVConnection.h | 60 +- iocore/net/P_SSLNextProtocolAccept.h | 6 +- iocore/net/P_SSLNextProtocolSet.h | 7 +- iocore/net/P_UDPNet.h | 2 - iocore/net/P_UnixNet.h | 22 +- iocore/net/P_UnixNetProcessor.h | 4 +- iocore/net/P_UnixNetState.h | 3 +- iocore/net/P_UnixNetVConnection.h | 55 +- iocore/net/SSLCertLookup.cc | 48 +- iocore/net/SSLClientUtils.cc | 39 +- iocore/net/SSLConfig.cc | 74 +- iocore/net/SSLDynlock.cc | 2 +- iocore/net/SSLNetProcessor.cc | 3 +- iocore/net/SSLNetVConnection.cc | 614 +- iocore/net/SSLSessionCache.cc | 1 + iocore/net/SSLUtils.cc | 15 +- iocore/net/Socks.cc | 13 +- iocore/net/UnixConnection.cc | 4 +- iocore/net/UnixNet.cc | 37 +- iocore/net/UnixNetAccept.cc | 8 +- iocore/net/UnixNetPages.cc | 14 +- iocore/net/UnixNetProcessor.cc | 26 +- iocore/net/UnixNetVConnection.cc | 132 +- iocore/net/UnixUDPNet.cc | 27 +- iocore/net/test_I_UDPNet.cc | 321 +- iocore/net/test_P_UDPNet.cc | 112 - iocore/utils/I_OneWayMultiTunnel.h | 6 +- iocore/utils/I_OneWayTunnel.h | 6 +- iocore/utils/OneWayMultiTunnel.cc | 4 +- iocore/utils/OneWayTunnel.cc | 5 + lib/bindings/bindings.h | 5 +- lib/bindings/lua.h | 7 +- lib/cppapi/InterceptPlugin.cc | 2 + lib/cppapi/Transaction.cc | 2 +- lib/cppapi/TransformationPlugin.cc | 44 +- .../include/atscppapi/TransformationPlugin.h | 11 + lib/cppapi/include/atscppapi/noncopyable.h | 5 +- lib/perl/lib/Apache/TS/AdminClient.pm | 1 - lib/records/RecConfigParse.cc | 2 +- lib/records/RecCore.cc | 2 +- lib/records/RecMutex.cc | 4 +- lib/records/RecProcess.cc | 2 +- lib/records/RecRawStats.cc | 125 +- lib/ts/Diags.cc | 2 +- lib/ts/EventNotify.cc | 2 +- lib/ts/History.h | 82 + lib/ts/HostLookup.cc | 2 +- lib/ts/IpMap.cc | 22 +- lib/ts/Makefile.am | 18 +- lib/ts/Map.h | 22 +- lib/ts/MemView.cc | 2 +- lib/ts/ParseRules.h | 6 +- lib/ts/Regex.cc | 2 +- lib/ts/Scalar.h | 288 +- lib/ts/Tokenizer.h | 6 +- lib/ts/X509HostnameValidator.cc | 2 +- lib/ts/apidefs.h.in | 11 +- lib/ts/ink_code.cc | 1 - lib/ts/ink_config.h.in | 3 +- lib/ts/ink_hrtime.cc | 5 + lib/ts/ink_memory.h | 4 +- lib/ts/ink_mutex.cc | 2 +- lib/ts/ink_mutex.h | 25 +- lib/ts/ink_rwlock.cc | 2 +- lib/ts/ink_sys_control.cc | 2 +- lib/ts/ink_thread.h | 6 + lib/ts/llqueue.cc | 2 +- lib/ts/string_view.h | 1216 ++ lib/ts/test_History.cc | 111 + lib/ts/test_Map.cc | 35 +- lib/ts/test_PriorityQueue.cc | 4 +- lib/ts/test_Scalar.cc | 57 +- .../ts/unit-tests/main.cpp | 10 +- lib/ts/unit-tests/string_view.cpp | 523 + mgmt/Alarms.cc | 2 +- mgmt/BaseManager.cc | 3 +- mgmt/FileManager.cc | 9 +- mgmt/LocalManager.cc | 9 +- mgmt/ProcessManager.cc | 270 +- mgmt/ProcessManager.h | 58 +- mgmt/RecordsConfig.cc | 26 +- mgmt/Rollback.cc | 8 +- mgmt/Rollback.h | 5 +- mgmt/WebMgmtUtils.cc | 15 + mgmt/api/EventCallback.cc | 4 +- mgmt/api/EventControlMain.cc | 4 +- mgmt/api/NetworkMessage.cc | 3 + mgmt/api/NetworkMessage.h | 3 + mgmt/api/NetworkUtilsRemote.h | 7 +- mgmt/utils/MgmtHashTable.h | 4 +- plugins/Makefile.am | 1 + plugins/authproxy/authproxy.cc | 4 +- plugins/authproxy/utils.h | 12 +- plugins/esi/combo_handler.cc | 2 +- plugins/esi/esi.cc | 8 +- plugins/esi/lib/EsiProcessor.cc | 29 +- plugins/esi/lib/Variables.h | 7 +- .../experimental/ats_pagespeed/ats_pagespeed.cc | 202 +- .../experimental/ats_pagespeed/gzip/debug_macros.h | 4 +- plugins/experimental/balancer/hash.cc | 4 +- .../experimental/buffer_upload/buffer_upload.cc | 59 +- .../experimental/cache_promote/cache_promote.cc | 2 +- plugins/experimental/cachekey/cachekey.h | 8 +- plugins/experimental/cachekey/pattern.h | 21 +- .../experimental/cachekey/tests/test_cachekey.py | 688 +- .../collapsed_connection/MurmurHash3.cc | 29 + .../collapsed_connection/collapsed_connection.cc | 2 +- plugins/experimental/collapsed_forwarding/README | 1 - .../collapsed_forwarding/collapsed_forwarding.cc | 1 - plugins/experimental/inliner/ts.h | 16 +- plugins/experimental/inliner/util.h | 5 +- plugins/experimental/memcache/tsmemcache.cc | 2 + plugins/experimental/memcached_remap/sample.py | 5 +- plugins/experimental/metalink/test/chunkedEncoding | 98 +- .../metalink/test/chunkedEncodingDisconnect | 90 +- .../experimental/metalink/test/clientDisconnect | 74 +- plugins/experimental/metalink/test/contentLength | 96 +- .../metalink/test/contentLengthDisconnect | 86 +- .../metalink/test/finalChunkedEncodingDisconnect | 114 +- plugins/experimental/metalink/test/headers | 56 +- plugins/experimental/metalink/test/http09 | 56 +- plugins/experimental/metalink/test/location | 131 +- plugins/experimental/metalink/test/longer | 82 +- plugins/experimental/metalink/test/notCacheable | 95 +- plugins/experimental/metalink/test/notModified | 60 +- .../metalink/test/pipeliningDisconnect | 79 +- .../metalink/test/shortChunkedEncodingDisconnect | 86 +- .../metalink/test/shortClientDisconnect | 66 +- .../metalink/test/shortContentLengthDisconnect | 82 +- plugins/experimental/metalink/test/zero | 78 +- plugins/experimental/money_trace/money_trace.cc | 2 + .../experimental/server_push_preload/Makefile.inc | 17 +- plugins/experimental/server_push_preload/README.md | 3 + .../server_push_preload/server_push_preload.cc | 140 + .../ssl_cert_loader/ssl-cert-loader.cc | 2 +- plugins/experimental/sslheaders/expand.cc | 2 +- plugins/experimental/sslheaders/sslheaders.cc | 14 +- plugins/experimental/sslheaders/sslheaders.h | 13 +- .../experimental/stream_editor/stream_editor.cc | 8 +- plugins/experimental/ts_lua/ts_lua_http_config.c | 10 +- .../experimental/ts_lua/ts_lua_http_intercept.c | 1 + plugins/gzip/debug_macros.h | 4 +- plugins/gzip/tests/test_gzip.py | 141 +- plugins/header_rewrite/conditions.cc | 123 + plugins/header_rewrite/conditions.h | 25 + plugins/header_rewrite/expander.cc | 30 + plugins/header_rewrite/factory.cc | 2 + plugins/header_rewrite/lulu.h | 4 +- plugins/header_rewrite/ruleset.cc | 14 + plugins/header_rewrite/ruleset.h | 3 +- plugins/header_rewrite/statement.h | 13 + plugins/regex_remap/regex_remap.cc | 70 +- plugins/s3_auth/aws_auth_v4.cc | 5 +- proxy/CacheControl.cc | 2 +- proxy/CoreUtils.cc | 2 +- proxy/FetchSM.cc | 1 + proxy/InkAPI.cc | 73 +- proxy/InkAPIInternal.h | 1 + proxy/InkAPITest.cc | 110 +- proxy/InkIOCoreAPI.cc | 2 +- proxy/Main.cc | 163 +- proxy/ParentConsistentHash.cc | 17 +- proxy/ParentConsistentHash.h | 4 +- proxy/ParentRoundRobin.cc | 23 +- proxy/ParentRoundRobin.h | 4 +- proxy/ParentSelection.cc | 58 +- proxy/ParentSelection.h | 23 +- proxy/Plugin.cc | 2 +- proxy/Prefetch.cc | 2 +- proxy/ProtocolProbeSessionAccept.h | 6 +- proxy/ProxyClientSession.h | 7 +- proxy/ProxyClientTransaction.cc | 5 +- proxy/ProxyClientTransaction.h | 5 - proxy/ReverseProxy.cc | 16 +- proxy/ReverseProxy.h | 8 - proxy/SocksProxy.cc | 7 +- proxy/TestPreProc.h | 7 +- proxy/api/ts/ts.h | 2 - proxy/hdrs/HTTP.h | 18 +- proxy/hdrs/HdrHeap.h | 5 +- proxy/hdrs/MIME.h | 5 +- proxy/hdrs/URL.h | 6 +- proxy/http/Http1ClientSession.cc | 34 +- proxy/http/Http1ClientSession.h | 3 + proxy/http/Http1ClientTransaction.cc | 14 +- proxy/http/Http1ClientTransaction.h | 94 +- proxy/http/HttpBodyFactory.cc | 16 +- proxy/http/HttpCacheSM.cc | 9 +- proxy/http/HttpConfig.cc | 46 +- proxy/http/HttpConfig.h | 48 +- proxy/http/HttpConnectionCount.cc | 51 + proxy/http/HttpConnectionCount.h | 44 +- proxy/http/HttpDebugNames.cc | 2 + proxy/http/HttpPages.cc | 10 +- proxy/http/HttpProxyServerMain.cc | 18 +- proxy/http/HttpProxyServerMain.h | 7 +- proxy/http/HttpSM.cc | 234 +- proxy/http/HttpSM.h | 32 +- proxy/http/HttpServerSession.h | 16 +- proxy/http/HttpSessionAccept.h | 6 +- proxy/http/HttpSessionManager.cc | 3 +- proxy/http/HttpTransact.cc | 337 +- proxy/http/HttpTransact.h | 40 +- proxy/http/HttpTransactCache.h | 6 +- proxy/http/HttpTransactHeaders.cc | 96 +- proxy/http/HttpTunnel.cc | 37 +- proxy/http/HttpTunnel.h | 32 +- proxy/http/remap/RemapConfig.h | 6 +- proxy/http/remap/RemapProcessor.cc | 2 +- proxy/http/remap/UrlMapping.h | 8 +- proxy/http2/HPACK.cc | 152 +- proxy/http2/HPACK.h | 5 +- proxy/http2/HTTP2.cc | 14 +- proxy/http2/HTTP2.h | 2 +- proxy/http2/Http2ClientSession.h | 14 +- proxy/http2/Http2ConnectionState.cc | 33 +- proxy/http2/Http2ConnectionState.h | 9 +- proxy/http2/Http2DependencyTree.h | 2 - proxy/http2/Http2SessionAccept.h | 7 +- proxy/http2/Http2Stream.cc | 72 +- proxy/http2/Http2Stream.h | 56 +- proxy/http2/HuffmanCodec.cc | 25 +- proxy/http2/RegressionHPACK.cc | 3 +- proxy/http2/test_HPACK.cc | 8 +- proxy/http2/test_Http2DependencyTree.cc | 2 +- proxy/logging/Log.cc | 18 +- proxy/logging/Log.h | 9 +- proxy/logging/LogAccess.cc | 64 +- proxy/logging/LogAccess.h | 30 +- proxy/logging/LogAccessHttp.cc | 164 +- proxy/logging/LogAccessHttp.h | 19 +- proxy/logging/LogAccessTest.h | 6 +- proxy/logging/LogBuffer.cc | 96 +- proxy/logging/LogBuffer.h | 21 +- proxy/logging/LogCollationClientSM.cc | 22 +- proxy/logging/LogCollationClientSM.h | 33 +- proxy/logging/LogConfig.cc | 1 - proxy/logging/LogConfig.h | 7 +- proxy/logging/LogField.cc | 4 +- proxy/logging/LogField.h | 23 +- proxy/logging/LogFile.cc | 8 - proxy/logging/LogFile.h | 14 +- proxy/logging/LogFilter.h | 27 +- proxy/logging/LogFormat.h | 15 +- proxy/logging/LogHost.cc | 31 +- proxy/logging/LogHost.h | 22 +- proxy/logging/LogObject.cc | 23 +- proxy/logging/LogObject.h | 10 +- proxy/logging/LogSock.h | 11 +- proxy/logging/LogUtils.h | 8 +- proxy/logstats.cc | 162 +- proxy/shared/UglyLogStubs.cc | 31 +- lib/atscppapi/Makefile.am => setup.cfg | 5 +- tests/.gitignore | 1 + tests/{getting_started.md => README.md} | 56 + tests/autest.sh | 2 +- tests/bootstrap.py | 11 +- tests/gold_tests/autest-site/conditions.test.ext | 52 + tests/gold_tests/autest-site/copy_config.test.ext | 60 +- tests/gold_tests/autest-site/init.cli.ext | 14 +- tests/gold_tests/autest-site/ports.py | 12 +- tests/gold_tests/autest-site/setup.cli.ext | 7 +- .../gold_tests/autest-site/trafficserver.test.ext | 147 +- .../autest-site/trafficserver_plugins.test.ext | 44 + tests/gold_tests/basic/basic-cop.test.py | 7 +- tests/gold_tests/basic/basic-manager.test.py | 7 +- tests/gold_tests/basic/basic.test.py | 7 +- tests/gold_tests/basic/config.test.py | 8 +- tests/gold_tests/basic/copy_config.test.py | 16 +- tests/gold_tests/basic/copy_config2.test.py | 8 +- .../body_factory/custom_response.test.py | 64 - .../data/www.customplugin204.test_get.txt | 2 + .../data/www.customtemplate204.test_get.txt | 2 + .../body_factory/data/www.default204.test_get.txt | 2 + .../body_factory/data/www.default304.test_get.txt | 2 + .../body_factory/data/www.example.test_get_200.txt | 3 + .../body_factory/data/www.example.test_get_304.txt | 4 + .../body_factory/data/www.example.test_head.txt | 3 + .../data/www.example.test_head_200.txt | 3 + .../body_factory/gold/http-204-custom-plugin.gold | 19 + .../body_factory/gold/http-204-custom.gold | 21 + tests/gold_tests/body_factory/gold/http-204.gold | 4 + tests/gold_tests/body_factory/gold/http-304.gold | 4 + .../gold_tests/body_factory/gold/http-get-200.gold | 6 + .../gold_tests/body_factory/gold/http-get-304.gold | 5 + .../body_factory/gold/http-head-200.gold | 4 + .../body_factory/gold/http-head-no-origin.gold | 7 + .../body_factory/http204_response.test.py | 95 + .../body_factory/http204_response_plugin.test.py | 55 + .../body_factory/http304_response.test.py | 57 + .../body_factory/http_head_no_origin.test.py | 45 + .../body_factory/http_with_origin.test.py | 109 + .../cache/cache-generation-clear.test.py | 98 +- .../cache/cache-generation-disjoint.test.py | 96 +- .../cache/disjoint-wait-for-cache.test.py | 92 +- tests/gold_tests/h2/gold/replay.gold | 5 + tests/gold_tests/h2/h2bigclient.py | 20 +- tests/gold_tests/h2/h2chunked.py | 31 +- tests/gold_tests/h2/h2client.py | 23 +- tests/gold_tests/h2/http2.test.py | 95 +- .../headers/data/www.passthrough.test_get.txt | 2 + .../headers/data/www.redirect301.test_get.txt | 2 + .../headers/data/www.redirect302.test_get.txt | 2 + .../headers/data/www.redirect307.test_get.txt | 2 + .../headers/data/www.redirect308.test_get.txt | 2 + .../headers/domain-blacklist-30x.test.py | 103 + tests/gold_tests/headers/http408.gold | 22 + tests/gold_tests/headers/http408.test.py | 58 + tests/gold_tests/headers/passthrough_get.gold | 22 + tests/gold_tests/headers/redirect301_get.gold | 22 + tests/gold_tests/headers/redirect302_get.gold | 22 + tests/gold_tests/headers/redirect307_get.gold | 22 + tests/gold_tests/headers/redirect308_get.gold | 22 + tests/gold_tests/headers/via-observer.py | 8 +- tests/gold_tests/headers/via.gold | 10 +- tests/gold_tests/headers/via.test.py | 117 +- tests/gold_tests/logging/custom-log.test.py | 4 +- .../header_rewrite/header_rewrite.test.py | 44 +- tests/gold_tests/remap/remap_http.test.py | 81 +- tests/gold_tests/remap/remap_https.test.py | 112 +- tests/gold_tests/tls/gold/ssl-post.gold | 2 + tests/gold_tests/tls/ssl-post.c | 328 + tests/gold_tests/{remap => tls}/ssl/server.key | 0 .../microServer => gold_tests/tls}/ssl/server.pem | 0 tests/gold_tests/tls/tls.test.py | 102 + .../gold_tests/tls_hooks/gold/cert-1.gold | 0 .../gold_tests/tls_hooks/gold/preaccept-1.gold | 0 .../gold_tests/tls_hooks/gold/sni-1.gold | 0 .../gold_tests/tls_hooks/gold/ts-cert-1-im-2.gold | 5 + tests/gold_tests/tls_hooks/gold/ts-cert-1.gold | 3 + tests/gold_tests/tls_hooks/gold/ts-cert-2.gold | 5 + tests/gold_tests/tls_hooks/gold/ts-cert-im-1.gold | 2 + .../gold_tests/tls_hooks/gold/ts-preaccept-1.gold | 3 + .../gold_tests/tls_hooks/gold/ts-preaccept-2.gold | 4 + .../gold/ts-preaccept-delayed-1-immdate-2.gold | 5 + .../tls_hooks/gold/ts-preaccept-delayed-1.gold | 3 + .../tls_hooks/gold/ts-preaccept1-sni1-cert1.gold | 5 + tests/gold_tests/tls_hooks/gold/ts-sni-1.gold | 3 + tests/gold_tests/tls_hooks/gold/ts-sni-2.gold | 4 + .../gold_tests/{remap => tls_hooks}/ssl/server.key | 0 .../tls_hooks}/ssl/server.pem | 0 tests/gold_tests/tls_hooks/tls_hooks.test.py | 78 + tests/gold_tests/tls_hooks/tls_hooks10.test.py | 79 + tests/gold_tests/tls_hooks/tls_hooks11.test.py | 76 + tests/gold_tests/tls_hooks/tls_hooks12.test.py | 87 + tests/gold_tests/tls_hooks/tls_hooks2.test.py | 77 + tests/gold_tests/tls_hooks/tls_hooks3.test.py | 77 + tests/gold_tests/tls_hooks/tls_hooks4.test.py | 83 + tests/gold_tests/tls_hooks/tls_hooks6.test.py | 81 + tests/gold_tests/tls_hooks/tls_hooks7.test.py | 80 + tests/gold_tests/tls_hooks/tls_hooks8.test.py | 80 + tests/gold_tests/tls_hooks/tls_hooks9.test.py | 76 + tests/include/catch.hpp | 11545 +++++++++++++++++++ tests/tools/README.md | 24 +- tests/tools/lib/result.py | 25 +- tests/tools/microServer/uWServer.py | 308 +- tests/tools/plugins/custom204plugin.cc | 152 + tests/tools/plugins/ssl_hook_test.cc | 248 + tests/tools/sessionvalidation/badsession.py | 2 + tests/tools/sessionvalidation/request.py | 3 +- tests/tools/sessionvalidation/response.py | 2 + tests/tools/sessionvalidation/session.py | 5 +- tests/tools/sessionvalidation/sessionvalidation.py | 25 +- tests/tools/sessionvalidation/transaction.py | 1 + tests/tools/tcp_408_client.py | 63 + tests/tools/tcp_client.py | 63 + tests/tools/traffic-replay/Config.py | 13 +- .../traffic-replay/{RandomReplay.py => NonSSL.py} | 87 +- tests/tools/traffic-replay/RandomReplay.py | 135 +- tests/tools/traffic-replay/SSLReplay.py | 143 +- tests/tools/traffic-replay/Scheduler.py | 40 +- tests/tools/traffic-replay/WorkerTask.py | 26 +- tests/tools/traffic-replay/__main__.py | 15 +- tests/tools/traffic-replay/extractHeader.py | 16 +- tests/tools/traffic-replay/h2Replay.py | 122 +- tests/tools/traffic-replay/mainProcess.py | 31 +- tools/apply-pr.sh | 18 +- tools/check-unused-dependencies | 94 +- tools/clang-format.sh | 2 +- tools/tsxs.in | 9 +- 479 files changed, 25092 insertions(+), 6147 deletions(-) create mode 100644 cmd/traffic_manager/test_metrics.cc create mode 100644 doc/developer-guide/client-session-architecture.en.rst create mode 100644 doc/developer-guide/internal-libraries/scalar.en.rst create mode 100644 doc/developer-guide/plugins/hooks-and-transactions/ssl-hooks.en.rst create mode 100644 doc/developer-guide/threads-and-events.en.rst create mode 100644 doc/static/images/sessions/http1_session_objects.png create mode 100644 doc/static/images/sessions/http2_session_objects.png create mode 100644 doc/static/images/sessions/session_hierarchy.png create mode 100644 doc/static/images/sessions/transaction_hierarchy.png create mode 100644 example/cppapi/delay_transformation_plugin/DelayTransformationPlugin.cc rename example/{server-push/server-push.c => server_push/server_push.c} (91%) delete mode 100644 iocore/net/test_P_UDPNet.cc create mode 100644 lib/ts/History.h create mode 100644 lib/ts/string_view.h create mode 100644 lib/ts/test_History.cc copy proxy/http/HttpConnectionCount.cc => lib/ts/unit-tests/main.cpp (82%) create mode 100644 lib/ts/unit-tests/string_view.cpp copy cmd/Makefile.am => plugins/experimental/server_push_preload/Makefile.inc (79%) create mode 100644 plugins/experimental/server_push_preload/README.md create mode 100644 plugins/experimental/server_push_preload/server_push_preload.cc rename lib/atscppapi/Makefile.am => setup.cfg (96%) create mode 100644 tests/.gitignore rename tests/{getting_started.md => README.md} (87%) create mode 100644 tests/gold_tests/autest-site/conditions.test.ext mode change 100644 => 100755 tests/gold_tests/autest-site/copy_config.test.ext mode change 100644 => 100755 tests/gold_tests/autest-site/trafficserver.test.ext create mode 100644 tests/gold_tests/autest-site/trafficserver_plugins.test.ext delete mode 100644 tests/gold_tests/body_factory/custom_response.test.py create mode 100644 tests/gold_tests/body_factory/data/www.customplugin204.test_get.txt create mode 100644 tests/gold_tests/body_factory/data/www.customtemplate204.test_get.txt create mode 100644 tests/gold_tests/body_factory/data/www.default204.test_get.txt create mode 100644 tests/gold_tests/body_factory/data/www.default304.test_get.txt create mode 100644 tests/gold_tests/body_factory/data/www.example.test_get_200.txt create mode 100644 tests/gold_tests/body_factory/data/www.example.test_get_304.txt create mode 100644 tests/gold_tests/body_factory/data/www.example.test_head.txt create mode 100644 tests/gold_tests/body_factory/data/www.example.test_head_200.txt create mode 100644 tests/gold_tests/body_factory/gold/http-204-custom-plugin.gold create mode 100644 tests/gold_tests/body_factory/gold/http-204-custom.gold create mode 100644 tests/gold_tests/body_factory/gold/http-204.gold create mode 100644 tests/gold_tests/body_factory/gold/http-304.gold create mode 100644 tests/gold_tests/body_factory/gold/http-get-200.gold create mode 100644 tests/gold_tests/body_factory/gold/http-get-304.gold create mode 100644 tests/gold_tests/body_factory/gold/http-head-200.gold create mode 100644 tests/gold_tests/body_factory/gold/http-head-no-origin.gold create mode 100644 tests/gold_tests/body_factory/http204_response.test.py create mode 100644 tests/gold_tests/body_factory/http204_response_plugin.test.py create mode 100644 tests/gold_tests/body_factory/http304_response.test.py create mode 100644 tests/gold_tests/body_factory/http_head_no_origin.test.py create mode 100644 tests/gold_tests/body_factory/http_with_origin.test.py create mode 100644 tests/gold_tests/h2/gold/replay.gold create mode 100644 tests/gold_tests/headers/data/www.passthrough.test_get.txt create mode 100644 tests/gold_tests/headers/data/www.redirect301.test_get.txt create mode 100644 tests/gold_tests/headers/data/www.redirect302.test_get.txt create mode 100644 tests/gold_tests/headers/data/www.redirect307.test_get.txt create mode 100644 tests/gold_tests/headers/data/www.redirect308.test_get.txt create mode 100644 tests/gold_tests/headers/domain-blacklist-30x.test.py create mode 100644 tests/gold_tests/headers/http408.gold create mode 100644 tests/gold_tests/headers/http408.test.py create mode 100644 tests/gold_tests/headers/passthrough_get.gold create mode 100644 tests/gold_tests/headers/redirect301_get.gold create mode 100644 tests/gold_tests/headers/redirect302_get.gold create mode 100644 tests/gold_tests/headers/redirect307_get.gold create mode 100644 tests/gold_tests/headers/redirect308_get.gold create mode 100644 tests/gold_tests/tls/gold/ssl-post.gold create mode 100644 tests/gold_tests/tls/ssl-post.c copy tests/gold_tests/{remap => tls}/ssl/server.key (100%) copy tests/{tools/microServer => gold_tests/tls}/ssl/server.pem (100%) create mode 100644 tests/gold_tests/tls/tls.test.py copy doc/_build/html/.gitignore => tests/gold_tests/tls_hooks/gold/cert-1.gold (100%) copy doc/_build/html/.gitignore => tests/gold_tests/tls_hooks/gold/preaccept-1.gold (100%) rename doc/_build/html/.gitignore => tests/gold_tests/tls_hooks/gold/sni-1.gold (100%) create mode 100644 tests/gold_tests/tls_hooks/gold/ts-cert-1-im-2.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-cert-1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-cert-2.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-cert-im-1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-preaccept-1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-preaccept-2.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-preaccept-delayed-1-immdate-2.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-preaccept-delayed-1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-preaccept1-sni1-cert1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-sni-1.gold create mode 100644 tests/gold_tests/tls_hooks/gold/ts-sni-2.gold copy tests/gold_tests/{remap => tls_hooks}/ssl/server.key (100%) copy tests/{tools/microServer => gold_tests/tls_hooks}/ssl/server.pem (100%) create mode 100644 tests/gold_tests/tls_hooks/tls_hooks.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks10.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks11.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks12.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks2.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks3.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks4.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks6.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks7.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks8.test.py create mode 100644 tests/gold_tests/tls_hooks/tls_hooks9.test.py create mode 100644 tests/include/catch.hpp create mode 100644 tests/tools/plugins/custom204plugin.cc create mode 100644 tests/tools/plugins/ssl_hook_test.cc create mode 100644 tests/tools/tcp_408_client.py create mode 100644 tests/tools/tcp_client.py copy tests/tools/traffic-replay/{RandomReplay.py => NonSSL.py} (77%) -- To stop receiving notification emails like this one, please contact ['"commits@trafficserver.apache.org" <commits@trafficserver.apache.org>'].