You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by so...@apache.org on 2016/05/20 23:10:56 UTC

[trafficserver] branch 6.2.x updated (c250469 -> 262783d)

This is an automated email from the ASF dual-hosted git repository.

sorber pushed a change to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git.

      from  c250469   Fix clang build errors.
       new  1df7e4b   TS-4187: Keep the currently_open connections in sync with the number of sockets open. This closes #583.
       new  a394bdc   TS-4180: Support for multiple intermediate cert chains if openssl 1.0.2 is present.  This closes #578.
       new  1fd3de8   TS-4235 Mark the fuzz configurations deprecated
       new  55b8b4d   TS-4356 Deprecate cacheurl plugin
       new  26d8466   TS-4046: Prevent memory leak of HTTP heap for server intercept case. This close #577.
       new  5f940c6   TS-4046: Better fix for cleaning up the client response for intercept plugins.
       new  484e8d2   TS-4046: Clang format fix.
       new  eacaaad   TS-4387: When calling TSContSchedule()/TSContScheduleEvery(), the passed in parameter TSCont have to have MUTEX; otherwise if we call TSContSchedule()/TSContScheduleEvery() more than once using same TSCont, only the first call will take effect; all the following schedule are ignored due to MUTEX issue.
       new  2fd83d7   WebSocket timeouts: transaction overrideable
       new  d03f92f   TS-3922: Add independent websocket timeouts. This closes #590
       new  ffeb210   TS-3922: Fix format warning
       new  d930165   TS-3922: clang format
       new  6390d48   TS-3922: Websocket Timeouts, transaction overrideable & clang format
       new  f6707d4   TS-4369: Add VIA_ERROR_MOVED_TEMPORARILY. This closes #586
       new  cdd5b00   TS-4401 Fix clang-format indentation
       new  f3e767c   TS-4401 Cleanup of the overridable switch statement
       new  908a85a   TS-4401 Override proxy.config.http.uncacheable_requests_bypass_parent
       new  a3ace1e   TS-4401 Override proxy.config.http.parent_proxy.total_connect_attempts
       new  cf2bb28   Remove redundant ACTION_RESULT macro parentheses.
       new  d2ce39c   TS-4315: Mistype Conditional ? : Operator
       new  c5ecc14   TS-4315: Removing other unused macro
       new  fcc6f4c   TS-4020 Use cache-key URL for some plugins
       new  bfd9403   TS-4420: Fix TSHttpTxnParentProxySet crash on parent failure.
       new  4719fff   TS-4420: Mark HttpParentProxySet test requests no-cache.
       new  676f30d   TS-4420: Sync config changes before running tests.
       new  b816863   TS-4427: traffic_logstats: Count TCP_MEM_HIT as a "normal" hit
       new  044f5e4   TS-4427 Fix unit tests
       new  262783d   TS-3123 Make proxy.config.http.transaction_active_timeout_in overridable

The 28 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ci/tsqa/tests/test_https.py                        |   3 +
 cmd/traffic_via/traffic_via.cc                     |   1 +
 doc/admin-guide/configuration/cache-basics.en.rst  |   4 +
 doc/admin-guide/files/records.config.en.rst        |  27 ++
 doc/admin-guide/plugins/cachekey.en.rst            |   9 +-
 doc/admin-guide/plugins/cacheurl.en.rst            |  28 ++
 doc/appendices/faq.en.rst                          |   1 +
 .../api/functions/TSHttpOverridableConfig.en.rst   |   2 +
 iocore/eventsystem/I_Action.h                      |   5 -
 iocore/net/SSLNetVConnection.cc                    |   1 -
 iocore/net/SSLUtils.cc                             |  68 ++--
 iocore/net/UnixNet.cc                              |   9 +-
 iocore/net/UnixNetVConnection.cc                   |   8 +-
 lib/ts/apidefs.h.in                                |   5 +
 mgmt/RecordsConfig.cc                              |   4 +
 plugins/cacheurl/cacheurl.cc                       |   5 +
 .../background_fetch/background_fetch.cc           |  62 ++--
 .../experimental/cache_promote/cache_promote.cc    |  20 +-
 plugins/experimental/ts_lua/ts_lua_http_config.c   |  10 +
 proxy/InkAPI.cc                                    |  69 +++-
 proxy/InkAPITest.cc                                | 386 +++++++++++++--------
 proxy/InkAPITestTool.cc                            |  47 ++-
 proxy/ParentSelection.h                            |  26 +-
 proxy/http/HttpConfig.cc                           |  17 +-
 proxy/http/HttpConfig.h                            |  15 +-
 proxy/http/HttpSM.cc                               |  20 +-
 proxy/http/HttpTransact.cc                         |  12 +-
 proxy/http/HttpTransact.h                          |   1 +
 proxy/http/README.via                              |   3 +
 proxy/logstats.cc                                  |  12 +-
 proxy/tests/logstats.json                          |   4 +
 proxy/tests/logstats.summary                       |   2 +
 32 files changed, 636 insertions(+), 250 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].

[trafficserver] 24/28: TS-4420: Mark HttpParentProxySet test requests no-cache.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 4719fff0770eb98b6f1a4df4fde2501f37defadf
Author: James Peach <jp...@apache.org>
AuthorDate: Tue May 10 13:34:49 2016 -0700

    TS-4420: Mark HttpParentProxySet test requests no-cache.
    
    When doing parent proxy requests we need to miss the cache so that
    we actually hit the synthetic server. Add a new response format
    that adds a no-cache Cache-Control header.
    
    (cherry picked from commit 85183a0ac37ddafea0a2e41cfbcde8b099665009)
---
 proxy/InkAPITest.cc     | 12 +++++++-----
 proxy/InkAPITestTool.cc | 18 +++++++++++++++++-
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 5e68bda..d404d17 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -5904,7 +5904,7 @@ struct ParentTest {
     /* If parent proxy routing is not enabled, enable it for the life of the test. */
     RecGetRecordBool("proxy.config.http.parent_proxy_routing_enable", &this->parent_proxy_routing_enable);
     if (!this->parent_proxy_routing_enable) {
-      rprintf(this->regtest, "enabling proxy.config.http.parent_proxy_routing_enable");
+      rprintf(this->regtest, "enabling proxy.config.http.parent_proxy_routing_enable\n");
       RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
     }
 
@@ -6082,8 +6082,9 @@ EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpParentProxySet_Fail)(RegressionTest *test,
   /* Create a client transaction */
   ptest->browser = synclient_txn_create();
 
-  // HTTP_REQUEST_FORMAT10 is a hostname, so we will need to set the parent to the synserver to get a response.
-  char *request = generate_request(10);
+  // HTTP_REQUEST_FORMAT11 is a hostname with a no-cache response, so we will need to set the parent to the synserver to get a
+  // response.
+  char *request = generate_request(11);
   synclient_txn_send_request(ptest->browser, request);
   TSfree(request);
 
@@ -6117,8 +6118,9 @@ EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpParentProxySet_Success)(RegressionTest *te
   /* Create a client transaction */
   ptest->browser = synclient_txn_create();
 
-  // HTTP_REQUEST_FORMAT10 is a hostname, so we will need to set the parent to the synserver to get a response.
-  char *request = generate_request(10);
+  // HTTP_REQUEST_FORMAT11 is a hostname with a no-cache response, so we will need to set the parent to the synserver to get a
+  // response.
+  char *request = generate_request(11);
   synclient_txn_send_request(ptest->browser, request);
   TSfree(request);
 
diff --git a/proxy/InkAPITestTool.cc b/proxy/InkAPITestTool.cc
index 4974887..4fc5d10 100644
--- a/proxy/InkAPITestTool.cc
+++ b/proxy/InkAPITestTool.cc
@@ -233,7 +233,10 @@ generate_request(int test_case)
   "GET http://trafficserver.apache.org/format10.html HTTP/1.0\r\n" \
   "X-Request-ID: %d\r\n"                                           \
   "\r\n"
-
+#define HTTP_REQUEST_FORMAT11                                      \
+  "GET http://trafficserver.apache.org/format11.html HTTP/1.0\r\n" \
+  "X-Request-ID: %d\r\n"                                           \
+  "\r\n"
   char *request = (char *)TSmalloc(REQUEST_MAX_SIZE + 1);
 
   switch (test_case) {
@@ -267,6 +270,9 @@ generate_request(int test_case)
   case 10:
     snprintf(request, REQUEST_MAX_SIZE + 1, HTTP_REQUEST_FORMAT10, test_case);
     break;
+  case 11:
+    snprintf(request, REQUEST_MAX_SIZE + 1, HTTP_REQUEST_FORMAT11, test_case);
+    break;
   default:
     snprintf(request, REQUEST_MAX_SIZE + 1, HTTP_REQUEST_DEFAULT_FORMAT, SYNSERVER_LISTEN_PORT, test_case);
     break;
@@ -358,6 +364,13 @@ generate_response(const char *request)
   "\r\n"                             \
   "Body for response 10"
 
+#define HTTP_RESPONSE_FORMAT11  \
+  "HTTP/1.0 200 OK\r\n"         \
+  "Cache-Control: no-cache\r\n" \
+  "X-Response-ID: %d\r\n"       \
+  "\r\n"                        \
+  "Body for response 11"
+
   int test_case, match, http_version;
 
   char *response = (char *)TSmalloc(RESPONSE_MAX_SIZE + 1);
@@ -394,6 +407,9 @@ generate_response(const char *request)
     case 10:
       snprintf(response, RESPONSE_MAX_SIZE + 1, HTTP_RESPONSE_FORMAT10, test_case);
       break;
+    case 11:
+      snprintf(response, RESPONSE_MAX_SIZE + 1, HTTP_RESPONSE_FORMAT11, test_case);
+      break;
     default:
       snprintf(response, RESPONSE_MAX_SIZE + 1, HTTP_RESPONSE_DEFAULT_FORMAT, test_case);
       break;

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 04/28: TS-4356 Deprecate cacheurl plugin

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 55b8b4da5feeedd71582e7790073e6cba440498d
Author: Gancho Tenev <gt...@gmail.com>
AuthorDate: Mon Apr 18 14:14:35 2016 -0700

    TS-4356 Deprecate cacheurl plugin
    
    This closes #582
    
    (cherry picked from commit 5e53b9462f30676d9dfa33b7473fddadcc3248fa)
---
 doc/admin-guide/plugins/cachekey.en.rst |  9 ++++++---
 doc/admin-guide/plugins/cacheurl.en.rst | 28 ++++++++++++++++++++++++++++
 plugins/cacheurl/cacheurl.cc            |  5 +++++
 3 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/doc/admin-guide/plugins/cachekey.en.rst b/doc/admin-guide/plugins/cachekey.en.rst
index 685a395..8848be9 100644
--- a/doc/admin-guide/plugins/cachekey.en.rst
+++ b/doc/admin-guide/plugins/cachekey.en.rst
@@ -1,5 +1,3 @@
-.. _admin-plugins-cachekey:
-
 .. Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
@@ -18,6 +16,11 @@
    under the License.
 
 
+.. include:: ../../common.defs
+
+.. _admin-plugins-cachekey:
+
+
 Cache Key Manipulation Plugin
 *****************************
 
@@ -108,7 +111,7 @@ Cache key structure and related plugin parameters
 * ``--include-headers`` (default: empty list) - comma separated list of headers to be added to the cache key. The list of headers defined by ``--include-headers`` are always sorted before adding them to the cache  key.
 
 "Cookies" section
-^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^
 
 ::
 
diff --git a/doc/admin-guide/plugins/cacheurl.en.rst b/doc/admin-guide/plugins/cacheurl.en.rst
index 775cf69..01085a9 100644
--- a/doc/admin-guide/plugins/cacheurl.en.rst
+++ b/doc/admin-guide/plugins/cacheurl.en.rst
@@ -22,6 +22,12 @@
 Cache URL Plugin
 ****************
 
+.. note::
+
+   This plugin is deprecated as of v6.2.0 and will be removed as of v7.0.0.
+   It is replaced by a new :ref:`admin-plugins-cachekey` and you should change your configurations to use the new plugin instead.
+   Please find some examples below.
+
 This plugin allows you to change the :term:`cache key` that is used for caching
 a request by using any portion of the URL via regular expressions.
 
@@ -100,6 +106,14 @@ will effectively share cache objects. Adding a unique suffix (``TSINTERNAL`` in
 this example) to the cache key guarantees that it won't clash with a real URL
 should s.example.com exist.
 
+Converting to :ref:`admin-plugins-cachekey`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You could do the same with :ref:`admin-plugins-cachekey` by adding the following to the mapping rules::
+
+    @plugin=cachekey.so @pparam=--capture-prefix=/s[123].example.com:.*/s.example.com.TSINTERNAL/
+
+
 Ignoring Some Query Parameters
 ------------------------------
 
@@ -110,6 +124,14 @@ generating a cache key, while still retaining important query parameters::
 
     http://www.example.com/video\?.*?\&?(id=[0-9a-f]*).*?\&(format=[a-z]*)  http://video-srv.example.com.ATSINTERNAL/$1&$2
 
+Converting to :ref:`admin-plugins-cachekey`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You could do the same with :ref:`admin-plugins-cachekey` by adding the following to the mapping rules::
+
+    @plugin=cachekey.so @pparam=--include-params=id,format
+
+
 Ignore Query String on Specific Pages
 -------------------------------------
 
@@ -119,3 +141,9 @@ of the URL::
 
     http://www.example.com/some/page(?:\?|$)  http://www.example.com/some/page
 
+Converting to :ref:`admin-plugins-cachekey`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You could do the same with :ref:`admin-plugins-cachekey` by adding the following to the mapping rules::
+
+    @plugin=cachekey.so @pparam=--remove-all-params
diff --git a/plugins/cacheurl/cacheurl.cc b/plugins/cacheurl/cacheurl.cc
index e65b2dd..d75f213 100644
--- a/plugins/cacheurl/cacheurl.cc
+++ b/plugins/cacheurl/cacheurl.cc
@@ -395,6 +395,9 @@ TSRemapInit(TSRemapInterface *api_info, char *errbuf, int errbuf_size)
   }
 
   TSDebug(PLUGIN_NAME, "remap plugin is successfully initialized");
+
+  TSError("[%s] is deprecated and will be removed as of v7.0.0", PLUGIN_NAME);
+
   return TS_SUCCESS;
 }
 
@@ -456,4 +459,6 @@ TSPluginInit(int argc, const char *argv[])
     initialization_error("Plugin config load failed.");
     return;
   }
+
+  TSError("[%s] is deprecated and will be removed as of v7.0.0", PLUGIN_NAME);
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 12/28: TS-3922: clang format

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit d930165bd1f48e62760d55754d3a69e518d00aa5
Author: Brian Geffon <br...@apache.org>
AuthorDate: Wed Apr 20 23:32:35 2016 -0700

    TS-3922: clang format
    
    (cherry picked from commit 518e829c90dbbd01ac424e8f693955102e9cde93)
---
 proxy/http/HttpSM.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 201e01e..052e932 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1632,14 +1632,16 @@ HttpSM::handle_api_return()
         HTTP_INCREMENT_DYN_STAT(http_websocket_current_active_client_connections_stat);
 
         if (ua_session) {
-          DebugSM("http_websocket", "(client session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
+          DebugSM("http_websocket",
+                  "(client session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
                   t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
           ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
           ua_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));
         }
 
         if (server_session) {
-          DebugSM("http_websocket", "(server session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
+          DebugSM("http_websocket",
+                  "(server session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
                   t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
           server_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
           server_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 11/28: TS-3922: Fix format warning

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit ffeb2103ecbff36cd02b6f2aadee99e9e128a5b2
Author: Brian Geffon <br...@apache.org>
AuthorDate: Wed Apr 20 22:46:51 2016 -0700

    TS-3922: Fix format warning
    
    (cherry picked from commit 25e650b95c0e2644b7fb1a161a1f43e5827d858f)
---
 proxy/http/HttpSM.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 094aafa..201e01e 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1632,14 +1632,14 @@ HttpSM::handle_api_return()
         HTTP_INCREMENT_DYN_STAT(http_websocket_current_active_client_connections_stat);
 
         if (ua_session) {
-          DebugSM("http_websocket", "(client session) Setting websocket active timeout=%ld s and inactive timeout=%ld s",
+          DebugSM("http_websocket", "(client session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
                   t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
           ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
           ua_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));
         }
 
         if (server_session) {
-          DebugSM("http_websocket", "(server session) Setting websocket active timeout=%ld s and inactive timeout=%ld s",
+          DebugSM("http_websocket", "(server session) Setting websocket active timeout=%" PRId64 "s and inactive timeout=%" PRId64 "s",
                   t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
           server_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
           server_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 01/28: TS-4187: Keep the currently_open connections in sync with the number of sockets open. This closes #583.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 1df7e4b04a930b936b3185bcf2b3f88d8694cf08
Author: Susan Hinrichs <sh...@ieee.org>
AuthorDate: Fri Apr 15 16:34:25 2016 +0000

    TS-4187: Keep the currently_open connections in sync with the number of sockets open. This closes #583.
    
    (cherry picked from commit 6f1119222126db29e508104f88782b2478972bdf)
---
 iocore/net/SSLNetVConnection.cc  | 1 -
 iocore/net/UnixNetVConnection.cc | 8 +++-----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/iocore/net/SSLNetVConnection.cc b/iocore/net/SSLNetVConnection.cc
index a8388ad..5a96db4 100644
--- a/iocore/net/SSLNetVConnection.cc
+++ b/iocore/net/SSLNetVConnection.cc
@@ -885,7 +885,6 @@ SSLNetVConnection::do_io_close(int lerrno)
 void
 SSLNetVConnection::free(EThread *t)
 {
-  NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
   got_remote_addr = 0;
   got_local_addr = 0;
   read.vio.mutex.clear();
diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc
index 593bf69..59b30bd 100644
--- a/iocore/net/UnixNetVConnection.cc
+++ b/iocore/net/UnixNetVConnection.cc
@@ -97,6 +97,9 @@ net_activity(UnixNetVConnection *vc, EThread *thread)
 void
 close_UnixNetVConnection(UnixNetVConnection *vc, EThread *t)
 {
+  if (vc->con.fd != NO_FD) {
+    NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
+  }
   NetHandler *nh = vc->nh;
   vc->cancel_OOB();
   vc->ep.stop();
@@ -1324,7 +1327,6 @@ void
 UnixNetVConnection::free(EThread *t)
 {
   ink_release_assert(t == this_ethread());
-  NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
   // clear variables for reuse
   this->mutex.clear();
   action_.mutex.clear();
@@ -1399,10 +1401,6 @@ UnixNetVConnection::migrateToCurrentThread(Continuation *cont, EThread *t)
   this->ep.stop();
   this->do_io_close();
 
-  // The do_io_close will decrement the current stat count but we are creating a new vc.
-  // Increment the currently open stat here so the net current count is unchanged
-  NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
-
   // Create new VC:
   if (save_ssl) {
     SSLNetVConnection *sslvc = static_cast<SSLNetVConnection *>(sslNetProcessor.allocate_vc(t));

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 21/28: TS-4315: Removing other unused macro

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit c5ecc148e63364c7d131bb33f23ed79b72ee5311
Author: Bryan Call <bc...@apache.org>
AuthorDate: Sun May 8 17:23:47 2016 -0700

    TS-4315: Removing other unused macro
    
    (cherry picked from commit 1124cdd9e324982b5bb75739432367d04a629e5e)
---
 iocore/eventsystem/I_Action.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/iocore/eventsystem/I_Action.h b/iocore/eventsystem/I_Action.h
index 38fd549..2ef419d 100644
--- a/iocore/eventsystem/I_Action.h
+++ b/iocore/eventsystem/I_Action.h
@@ -204,6 +204,4 @@ public:
 
 #define MAKE_ACTION_RESULT(_x) (Action *)(((uintptr_t)((_x << 1) + 1)))
 
-#define IS_ACTION_RESULT(_x) ((((uintptr_t)_x) & 1) != 0)
-
 #endif /*_Action_h_*/

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 18/28: TS-4401 Override proxy.config.http.parent_proxy.total_connect_attempts

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit a3ace1e2d33a883ed6d24cb5c1420985b051fb28
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Sat Apr 30 16:16:32 2016 -0600

    TS-4401 Override proxy.config.http.parent_proxy.total_connect_attempts
    
    (cherry picked from commit d59ee2b9c827c50920741e465b5e966cec07fac5)
    
     Conflicts:
    	proxy/http/HttpConfig.h
---
 doc/admin-guide/files/records.config.en.rst      | 1 +
 lib/ts/apidefs.h.in                              | 1 +
 plugins/experimental/ts_lua/ts_lua_http_config.c | 2 ++
 proxy/InkAPI.cc                                  | 9 +++++++++
 proxy/InkAPITest.cc                              | 1 +
 proxy/http/HttpConfig.cc                         | 4 ++--
 proxy/http/HttpConfig.h                          | 4 ++--
 proxy/http/HttpTransact.cc                       | 2 +-
 8 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index 1bb1bd0..0483a95 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1060,6 +1060,7 @@ Parent Proxy Configuration
 
 .. ts:cv:: CONFIG proxy.config.http.parent_proxy.total_connect_attempts INT 4
    :reloadable:
+   :overridable:
 
    The total number of connection attempts allowed to a parent cache before Traffic Server bypasses the parent or fails the request
    (depending on the ``go_direct`` option in the :file:`parent.config` file).
diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index d4b94db..4fb0977 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -698,6 +698,7 @@ typedef enum {
   TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
   TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
+  TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
   TS_CONFIG_LAST_ENTRY
 } TSOverridableConfigKey;
 
diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index aca39ce..031a2a3 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -117,6 +117,7 @@ typedef enum {
   TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT = TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
   TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT = TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
+  TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS = TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
   TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
 } TSLuaOverridableConfigKey;
 
@@ -226,6 +227,7 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
 };
 
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 3336449..2ccb59f 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7971,6 +7971,10 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
   case TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT:
     ret = &overridableHttpConfig->uncacheable_requests_bypass_parent;
     break;
+  case TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->parent_connect_attempts;
+    break;
   // This helps avoiding compiler warnings, yet detect unhandled enum members.
   case TS_CONFIG_NULL:
   case TS_CONFIG_LAST_ENTRY:
@@ -8612,6 +8616,11 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
         cnf = TS_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD;
       }
       break;
+    case 's':
+      if (!strncmp(name, "proxy.config.http.parent_proxy.total_connect_attempts", length)) {
+        cnf = TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS;
+      }
+      break;
     }
     break;
 
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index d3b5716..82cd9bb 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7354,6 +7354,7 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
   "proxy.config.websocket.no_activity_timeout",
   "proxy.config.websocket.active_timeout",
   "proxy.config.http.uncacheable_requests_bypass_parent",
+  "proxy.config.http.parent_proxy.total_connect_attempts",
 };
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index c599a9e..76cc96f 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -956,7 +956,7 @@ HttpConfig::startup()
   HttpEstablishStaticConfigLongLong(c.oride.connect_attempts_rr_retries, "proxy.config.http.connect_attempts_rr_retries");
   HttpEstablishStaticConfigLongLong(c.oride.connect_attempts_timeout, "proxy.config.http.connect_attempts_timeout");
   HttpEstablishStaticConfigLongLong(c.oride.post_connect_attempts_timeout, "proxy.config.http.post_connect_attempts_timeout");
-  HttpEstablishStaticConfigLongLong(c.parent_connect_attempts, "proxy.config.http.parent_proxy.total_connect_attempts");
+  HttpEstablishStaticConfigLongLong(c.oride.parent_connect_attempts, "proxy.config.http.parent_proxy.total_connect_attempts");
   HttpEstablishStaticConfigLongLong(c.per_parent_connect_attempts, "proxy.config.http.parent_proxy.per_parent_connect_attempts");
   HttpEstablishStaticConfigLongLong(c.parent_connect_timeout, "proxy.config.http.parent_proxy.connect_attempts_timeout");
 
@@ -1229,7 +1229,7 @@ HttpConfig::reconfigure()
   params->oride.connect_attempts_rr_retries = m_master.oride.connect_attempts_rr_retries;
   params->oride.connect_attempts_timeout = m_master.oride.connect_attempts_timeout;
   params->oride.post_connect_attempts_timeout = m_master.oride.post_connect_attempts_timeout;
-  params->parent_connect_attempts = m_master.parent_connect_attempts;
+  params->oride.parent_connect_attempts = m_master.oride.parent_connect_attempts;
   params->per_parent_connect_attempts = m_master.per_parent_connect_attempts;
   params->parent_connect_timeout = m_master.parent_connect_timeout;
 
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index 81d1efb..5da1e4c 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -433,6 +433,7 @@ struct OverridableHttpConfigParams {
       connect_attempts_rr_retries(3),
       connect_attempts_timeout(30),
       post_connect_attempts_timeout(1800),
+      parent_connect_attempts(4),
       down_server_timeout(300),
       client_abort_threshold(10),
       freshness_fuzz_time(240),
@@ -616,6 +617,7 @@ struct OverridableHttpConfigParams {
   MgmtInt connect_attempts_rr_retries;
   MgmtInt connect_attempts_timeout;
   MgmtInt post_connect_attempts_timeout;
+  MgmtInt parent_connect_attempts;
 
   MgmtInt down_server_timeout;
   MgmtInt client_abort_threshold;
@@ -742,7 +744,6 @@ public:
   ////////////////////////////////////
   // origin server connect attempts //
   ////////////////////////////////////
-  MgmtInt parent_connect_attempts;
   MgmtInt per_parent_connect_attempts;
   MgmtInt parent_connect_timeout;
 
@@ -942,7 +943,6 @@ inline HttpConfigParams::HttpConfigParams()
     session_auth_cache_keep_alive_enabled(1),
     transaction_active_timeout_in(900),
     accept_no_activity_timeout(120),
-    parent_connect_attempts(4),
     per_parent_connect_attempts(2),
     parent_connect_timeout(30),
     anonymize_other_header_list(NULL),
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 6de9c8d..51358b7 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -3608,7 +3608,7 @@ HttpTransact::handle_response_from_parent(State *s)
           next_lookup = find_server_and_update_current_info(s);
         }
       }
-    } else if (s->current.attempts < s->http_config_param->parent_connect_attempts) {
+    } else if (s->current.attempts < s->txn_conf->parent_connect_attempts) {
       s->current.attempts++;
 
       // Are we done with this particular parent?

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 15/28: TS-4401 Fix clang-format indentation

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit cdd5b0058d037194ebaef3e49d21287d3dd71129
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Sat Apr 30 12:10:09 2016 -0600

    TS-4401 Fix clang-format indentation
    
    (cherry picked from commit 42e4b201cf58ec946dd9ed5f6da2d0f50403a746)
---
 plugins/experimental/ts_lua/ts_lua_http_config.c | 198 ++++++++++++-----------
 proxy/InkAPITest.cc                              | 196 +++++++++++-----------
 2 files changed, 199 insertions(+), 195 deletions(-)

diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 31abb1e..952af54 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -126,104 +126,106 @@ typedef enum {
   TS_LUA_TIMEOUT_NO_ACTIVITY = 3
 } TSLuaTimeoutKey;
 
-ts_lua_var_item ts_lua_http_config_vars[] = {TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_URL_REMAP_PRISTINE_HOST_HDR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_POST_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_OPTION_FLAG_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_TCP_INIT_CWND),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SEND_HTTP11_REQUESTS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HTTP),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_REQUIRED_HEADERS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_REQUEST_VIA_STR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_STALE_AGE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_TIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_STR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_MARK_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_TOS_OUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_SIZE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_LOOKUP),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NORMALIZE_AE_GZIP),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_SIZE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ACCEPT_ENCODING_FILTER_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_MAX_AGE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_WRITE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SLOW_LOG_THRESHOLD),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GENERATION),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_BODY_FACTORY_TEMPLATE_BASE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ENABLE_REDIRECTION),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
-                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY)};
+ts_lua_var_item ts_lua_http_config_vars[] = {
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_URL_REMAP_PRISTINE_HOST_HDR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_POST_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_OPTION_FLAG_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_TCP_INIT_CWND),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SEND_HTTP11_REQUESTS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HTTP),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_REQUIRED_HEADERS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_REQUEST_VIA_STR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_STALE_AGE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_TIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_STR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_MARK_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_TOS_OUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_SIZE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_LOOKUP),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NORMALIZE_AE_GZIP),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_SIZE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ACCEPT_ENCODING_FILTER_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_MAX_AGE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_WRITE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SLOW_LOG_THRESHOLD),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GENERATION),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_BODY_FACTORY_TEMPLATE_BASE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ENABLE_REDIRECTION),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
+};
 
 // Needed to make sure we have the latest list of overridable http config vars when compiling
 #define NUM_HTTP_CONFIG_VARS (sizeof(ts_lua_http_config_vars) / sizeof(ts_lua_http_config_vars[0]))
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index e635219..4445e47 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7255,103 +7255,105 @@ EXCLUSIVE_REGRESSION_TEST(SDK_API_TSHttpConnectServerIntercept)(RegressionTest *
 ////////////////////////////////////////////////
 
 // The order of these should be the same as TSOverridableConfigKey
-const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {"proxy.config.url_remap.pristine_host_hdr",
-                                                             "proxy.config.http.chunking_enabled",
-                                                             "proxy.config.http.negative_caching_enabled",
-                                                             "proxy.config.http.negative_caching_lifetime",
-                                                             "proxy.config.http.cache.when_to_revalidate",
-                                                             "proxy.config.http.keep_alive_enabled_in",
-                                                             "proxy.config.http.keep_alive_enabled_out",
-                                                             "proxy.config.http.keep_alive_post_out",
-                                                             "proxy.config.http.server_session_sharing.match",
-                                                             "proxy.config.net.sock_recv_buffer_size_out",
-                                                             "proxy.config.net.sock_send_buffer_size_out",
-                                                             "proxy.config.net.sock_option_flag_out",
-                                                             "proxy.config.http.forward.proxy_auth_to_parent",
-                                                             "proxy.config.http.anonymize_remove_from",
-                                                             "proxy.config.http.anonymize_remove_referer",
-                                                             "proxy.config.http.anonymize_remove_user_agent",
-                                                             "proxy.config.http.anonymize_remove_cookie",
-                                                             "proxy.config.http.anonymize_remove_client_ip",
-                                                             "proxy.config.http.anonymize_insert_client_ip",
-                                                             "proxy.config.http.response_server_enabled",
-                                                             "proxy.config.http.insert_squid_x_forwarded_for",
-                                                             "proxy.config.http.server_tcp_init_cwnd",
-                                                             "proxy.config.http.send_http11_requests",
-                                                             "proxy.config.http.cache.http",
-                                                             "proxy.config.http.cache.cluster_cache_local",
-                                                             "proxy.config.http.cache.ignore_client_no_cache",
-                                                             "proxy.config.http.cache.ignore_client_cc_max_age",
-                                                             "proxy.config.http.cache.ims_on_client_no_cache",
-                                                             "proxy.config.http.cache.ignore_server_no_cache",
-                                                             "proxy.config.http.cache.cache_responses_to_cookies",
-                                                             "proxy.config.http.cache.ignore_authentication",
-                                                             "proxy.config.http.cache.cache_urls_that_look_dynamic",
-                                                             "proxy.config.http.cache.required_headers",
-                                                             "proxy.config.http.insert_request_via_str",
-                                                             "proxy.config.http.insert_response_via_str",
-                                                             "proxy.config.http.cache.heuristic_min_lifetime",
-                                                             "proxy.config.http.cache.heuristic_max_lifetime",
-                                                             "proxy.config.http.cache.guaranteed_min_lifetime",
-                                                             "proxy.config.http.cache.guaranteed_max_lifetime",
-                                                             "proxy.config.http.cache.max_stale_age",
-                                                             "proxy.config.http.keep_alive_no_activity_timeout_in",
-                                                             "proxy.config.http.keep_alive_no_activity_timeout_out",
-                                                             "proxy.config.http.transaction_no_activity_timeout_in",
-                                                             "proxy.config.http.transaction_no_activity_timeout_out",
-                                                             "proxy.config.http.transaction_active_timeout_out",
-                                                             "proxy.config.http.origin_max_connections",
-                                                             "proxy.config.http.connect_attempts_max_retries",
-                                                             "proxy.config.http.connect_attempts_max_retries_dead_server",
-                                                             "proxy.config.http.connect_attempts_rr_retries",
-                                                             "proxy.config.http.connect_attempts_timeout",
-                                                             "proxy.config.http.post_connect_attempts_timeout",
-                                                             "proxy.config.http.down_server.cache_time",
-                                                             "proxy.config.http.down_server.abort_threshold",
-                                                             "proxy.config.http.cache.fuzz.time",
-                                                             "proxy.config.http.cache.fuzz.min_time",
-                                                             "proxy.config.http.doc_in_cache_skip_dns",
-                                                             "proxy.config.http.background_fill_active_timeout",
-                                                             "proxy.config.http.response_server_str",
-                                                             "proxy.config.http.cache.heuristic_lm_factor",
-                                                             "proxy.config.http.cache.fuzz.probability",
-                                                             "proxy.config.http.background_fill_completed_threshold",
-                                                             "proxy.config.net.sock_packet_mark_out",
-                                                             "proxy.config.net.sock_packet_tos_out",
-                                                             "proxy.config.http.insert_age_in_response",
-                                                             "proxy.config.http.chunking.size",
-                                                             "proxy.config.http.flow_control.enabled",
-                                                             "proxy.config.http.flow_control.low_water",
-                                                             "proxy.config.http.flow_control.high_water",
-                                                             "proxy.config.http.cache.range.lookup",
-                                                             "proxy.config.http.normalize_ae_gzip",
-                                                             "proxy.config.http.default_buffer_size",
-                                                             "proxy.config.http.default_buffer_water_mark",
-                                                             "proxy.config.http.request_header_max_size",
-                                                             "proxy.config.http.response_header_max_size",
-                                                             "proxy.config.http.negative_revalidating_enabled",
-                                                             "proxy.config.http.negative_revalidating_lifetime",
-                                                             "proxy.config.http.accept_encoding_filter_enabled",
-                                                             "proxy.config.ssl.hsts_max_age",
-                                                             "proxy.config.ssl.hsts_include_subdomains",
-                                                             "proxy.config.http.cache.open_read_retry_time",
-                                                             "proxy.config.http.cache.max_open_read_retries",
-                                                             "proxy.config.http.cache.range.write",
-                                                             "proxy.config.http.post.check.content_length.enabled",
-                                                             "proxy.config.http.global_user_agent_header",
-                                                             "proxy.config.http.auth_server_session_private",
-                                                             "proxy.config.http.slow.log.threshold",
-                                                             "proxy.config.http.cache.generation",
-                                                             "proxy.config.body_factory.template_base",
-                                                             "proxy.config.http.cache.open_write_fail_action",
-                                                             "proxy.config.http.redirection_enabled",
-                                                             "proxy.config.http.number_of_redirections",
-                                                             "proxy.config.http.cache.max_open_write_retries",
-                                                             "proxy.config.http.redirect_use_orig_cache_key",
-                                                             "proxy.config.http.attach_server_session_to_client",
-                                                             "proxy.config.http.origin_max_connections_queue",
-                                                             "proxy.config.websocket.no_activity_timeout",
-                                                             "proxy.config.websocket.active_timeout"};
+const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
+  "proxy.config.url_remap.pristine_host_hdr",
+  "proxy.config.http.chunking_enabled",
+  "proxy.config.http.negative_caching_enabled",
+  "proxy.config.http.negative_caching_lifetime",
+  "proxy.config.http.cache.when_to_revalidate",
+  "proxy.config.http.keep_alive_enabled_in",
+  "proxy.config.http.keep_alive_enabled_out",
+  "proxy.config.http.keep_alive_post_out",
+  "proxy.config.http.server_session_sharing.match",
+  "proxy.config.net.sock_recv_buffer_size_out",
+  "proxy.config.net.sock_send_buffer_size_out",
+  "proxy.config.net.sock_option_flag_out",
+  "proxy.config.http.forward.proxy_auth_to_parent",
+  "proxy.config.http.anonymize_remove_from",
+  "proxy.config.http.anonymize_remove_referer",
+  "proxy.config.http.anonymize_remove_user_agent",
+  "proxy.config.http.anonymize_remove_cookie",
+  "proxy.config.http.anonymize_remove_client_ip",
+  "proxy.config.http.anonymize_insert_client_ip",
+  "proxy.config.http.response_server_enabled",
+  "proxy.config.http.insert_squid_x_forwarded_for",
+  "proxy.config.http.server_tcp_init_cwnd",
+  "proxy.config.http.send_http11_requests",
+  "proxy.config.http.cache.http",
+  "proxy.config.http.cache.cluster_cache_local",
+  "proxy.config.http.cache.ignore_client_no_cache",
+  "proxy.config.http.cache.ignore_client_cc_max_age",
+  "proxy.config.http.cache.ims_on_client_no_cache",
+  "proxy.config.http.cache.ignore_server_no_cache",
+  "proxy.config.http.cache.cache_responses_to_cookies",
+  "proxy.config.http.cache.ignore_authentication",
+  "proxy.config.http.cache.cache_urls_that_look_dynamic",
+  "proxy.config.http.cache.required_headers",
+  "proxy.config.http.insert_request_via_str",
+  "proxy.config.http.insert_response_via_str",
+  "proxy.config.http.cache.heuristic_min_lifetime",
+  "proxy.config.http.cache.heuristic_max_lifetime",
+  "proxy.config.http.cache.guaranteed_min_lifetime",
+  "proxy.config.http.cache.guaranteed_max_lifetime",
+  "proxy.config.http.cache.max_stale_age",
+  "proxy.config.http.keep_alive_no_activity_timeout_in",
+  "proxy.config.http.keep_alive_no_activity_timeout_out",
+  "proxy.config.http.transaction_no_activity_timeout_in",
+  "proxy.config.http.transaction_no_activity_timeout_out",
+  "proxy.config.http.transaction_active_timeout_out",
+  "proxy.config.http.origin_max_connections",
+  "proxy.config.http.connect_attempts_max_retries",
+  "proxy.config.http.connect_attempts_max_retries_dead_server",
+  "proxy.config.http.connect_attempts_rr_retries",
+  "proxy.config.http.connect_attempts_timeout",
+  "proxy.config.http.post_connect_attempts_timeout",
+  "proxy.config.http.down_server.cache_time",
+  "proxy.config.http.down_server.abort_threshold",
+  "proxy.config.http.cache.fuzz.time",
+  "proxy.config.http.cache.fuzz.min_time",
+  "proxy.config.http.doc_in_cache_skip_dns",
+  "proxy.config.http.background_fill_active_timeout",
+  "proxy.config.http.response_server_str",
+  "proxy.config.http.cache.heuristic_lm_factor",
+  "proxy.config.http.cache.fuzz.probability",
+  "proxy.config.http.background_fill_completed_threshold",
+  "proxy.config.net.sock_packet_mark_out",
+  "proxy.config.net.sock_packet_tos_out",
+  "proxy.config.http.insert_age_in_response",
+  "proxy.config.http.chunking.size",
+  "proxy.config.http.flow_control.enabled",
+  "proxy.config.http.flow_control.low_water",
+  "proxy.config.http.flow_control.high_water",
+  "proxy.config.http.cache.range.lookup",
+  "proxy.config.http.normalize_ae_gzip",
+  "proxy.config.http.default_buffer_size",
+  "proxy.config.http.default_buffer_water_mark",
+  "proxy.config.http.request_header_max_size",
+  "proxy.config.http.response_header_max_size",
+  "proxy.config.http.negative_revalidating_enabled",
+  "proxy.config.http.negative_revalidating_lifetime",
+  "proxy.config.http.accept_encoding_filter_enabled",
+  "proxy.config.ssl.hsts_max_age",
+  "proxy.config.ssl.hsts_include_subdomains",
+  "proxy.config.http.cache.open_read_retry_time",
+  "proxy.config.http.cache.max_open_read_retries",
+  "proxy.config.http.cache.range.write",
+  "proxy.config.http.post.check.content_length.enabled",
+  "proxy.config.http.global_user_agent_header",
+  "proxy.config.http.auth_server_session_private",
+  "proxy.config.http.slow.log.threshold",
+  "proxy.config.http.cache.generation",
+  "proxy.config.body_factory.template_base",
+  "proxy.config.http.cache.open_write_fail_action",
+  "proxy.config.http.redirection_enabled",
+  "proxy.config.http.number_of_redirections",
+  "proxy.config.http.cache.max_open_write_retries",
+  "proxy.config.http.redirect_use_orig_cache_key",
+  "proxy.config.http.attach_server_session_to_client",
+  "proxy.config.http.origin_max_connections_queue",
+  "proxy.config.websocket.no_activity_timeout",
+  "proxy.config.websocket.active_timeout",
+};
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
 {

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 23/28: TS-4420: Fix TSHttpTxnParentProxySet crash on parent failure.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit bfd9403db09f952ebc6395caa8b5a87046a2144c
Author: James Peach <jp...@apache.org>
AuthorDate: Mon May 9 16:15:42 2016 -0700

    TS-4420: Fix TSHttpTxnParentProxySet crash on parent failure.
    
    Fix NULL pointer deref when marking API parents down. Since the API
    parent caches are fixed, there's no place to store up/down status.
    Add an API test to exercise API parent failure.
    
    This closes #623.
    
    (cherry picked from commit 4d61d7b234e1f674408ae902d3adbe81e5ba5a2b)
---
 proxy/InkAPITest.cc     | 182 +++++++++++++++++++++++++++++++++++++-----------
 proxy/InkAPITestTool.cc |  29 ++++++--
 proxy/ParentSelection.h |  26 ++++---
 3 files changed, 184 insertions(+), 53 deletions(-)

diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 82cd9bb..5e68bda 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -5894,16 +5894,109 @@ EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpSsn)(RegressionTest *test, int /* atype AT
 }
 
 struct ParentTest {
+  ParentTest(RegressionTest *test, int *pstatus)
+  {
+    ink_zero(*this);
+    this->regtest = test;
+    this->pstatus = pstatus;
+    this->magic = MAGIC_ALIVE;
+
+    /* If parent proxy routing is not enabled, enable it for the life of the test. */
+    RecGetRecordBool("proxy.config.http.parent_proxy_routing_enable", &this->parent_proxy_routing_enable);
+    if (!this->parent_proxy_routing_enable) {
+      rprintf(this->regtest, "enabling proxy.config.http.parent_proxy_routing_enable");
+      RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
+    }
+
+    RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
+  }
+
+  ~ParentTest()
+  {
+    synclient_txn_delete(this->browser);
+    synserver_delete(this->os);
+    this->os = NULL;
+    this->magic = MAGIC_DEAD;
+  }
+
   RegressionTest *regtest;
   int *pstatus;
+
+  const char *testcase;
   SocketServer *os;
   ClientTxn *browser;
+  TSEventFunc handler;
 
   RecBool parent_proxy_routing_enable;
   unsigned int magic;
 };
 
 static int
+parent_proxy_success(TSCont contp, TSEvent event, void *edata)
+{
+  ParentTest *ptest = (ParentTest *)TSContDataGet(contp);
+  TSHttpTxn txnp = (TSHttpTxn)edata;
+
+  int expected;
+  int received;
+
+  switch (event) {
+  case TS_EVENT_HTTP_SEND_RESPONSE_HDR:
+    expected = get_request_id(txnp);
+    received = get_response_id(txnp);
+
+    if (expected != received) {
+      *(ptest->pstatus) = REGRESSION_TEST_FAILED;
+      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Expected response ID %d, received %d", expected,
+                 received);
+    } else {
+      *(ptest->pstatus) = REGRESSION_TEST_PASSED;
+      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_PASS, "Received expected response ID %d", expected);
+    }
+    TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
+    return TS_EVENT_NONE;
+
+  default:
+    SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", ptest->testcase, TC_FAIL, "Unexpected event %d", event);
+    return TS_EVENT_ERROR;
+  }
+}
+
+static int
+parent_proxy_fail(TSCont contp, TSEvent event, void *edata)
+{
+  ParentTest *ptest = (ParentTest *)TSContDataGet(contp);
+  TSHttpTxn txnp = (TSHttpTxn)edata;
+
+  TSMBuffer mbuf;
+  TSMLoc hdr;
+  TSHttpStatus expected = TS_HTTP_STATUS_BAD_GATEWAY;
+  TSHttpStatus received;
+
+  switch (event) {
+  case TS_EVENT_HTTP_SEND_RESPONSE_HDR:
+    ink_release_assert(TSHttpTxnClientRespGet(txnp, &mbuf, &hdr) == TS_SUCCESS);
+    received = TSHttpHdrStatusGet(mbuf, hdr);
+
+    if (expected != received) {
+      *(ptest->pstatus) = REGRESSION_TEST_FAILED;
+      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Expected response status %d, received %d",
+                 expected, received);
+    } else {
+      *(ptest->pstatus) = REGRESSION_TEST_PASSED;
+      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_PASS, "Received expected response status %d", expected);
+    }
+
+    TSHandleMLocRelease(mbuf, TS_NULL_MLOC, hdr);
+    return TS_EVENT_NONE;
+
+  default:
+    SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", ptest->testcase, TC_FAIL, "Unexpected event %d", event);
+    return TS_EVENT_ERROR;
+  }
+}
+
+static int
 parent_proxy_handler(TSCont contp, TSEvent event, void *edata)
 {
   ParentTest *ptest = NULL;
@@ -5927,22 +6020,6 @@ parent_proxy_handler(TSCont contp, TSEvent event, void *edata)
     TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
     break;
 
-  case TS_EVENT_HTTP_SEND_RESPONSE_HDR: {
-    int expected = get_request_id(txnp);
-    int received = get_response_id(txnp);
-
-    if (expected != received) {
-      *(ptest->pstatus) = REGRESSION_TEST_FAILED;
-      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Expected response ID %d, received %d", expected,
-                 received);
-    } else {
-      *(ptest->pstatus) = REGRESSION_TEST_PASSED;
-      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_PASS, "Received expected response ID %d", expected);
-    }
-    TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
-    break;
-  }
-
   case TS_EVENT_TIMEOUT:
     if (*(ptest->pstatus) == REGRESSION_TEST_INPROGRESS) {
       // If we are still in progress, reschedule.
@@ -5953,12 +6030,7 @@ parent_proxy_handler(TSCont contp, TSEvent event, void *edata)
       RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", ptest->parent_proxy_routing_enable, REC_SOURCE_EXPLICIT);
 
       TSContDataSet(contp, NULL);
-
-      synclient_txn_delete(ptest->browser);
-      synserver_delete(ptest->os);
-      ptest->os = NULL;
-      ptest->magic = MAGIC_DEAD;
-      TSfree(ptest);
+      delete ptest;
     }
     break;
 
@@ -5966,52 +6038,80 @@ parent_proxy_handler(TSCont contp, TSEvent event, void *edata)
     // We expected to pass or fail reading the response header. At this point we must have failed.
     if (*(ptest->pstatus) == REGRESSION_TEST_INPROGRESS) {
       *(ptest->pstatus) = REGRESSION_TEST_FAILED;
-      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Failed on txn close");
+      SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", ptest->testcase, TC_FAIL, "Failed on txn close");
     }
     TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
     break;
 
   default:
-    *(ptest->pstatus) = REGRESSION_TEST_FAILED;
-    SDK_RPRINT(ptest->regtest, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Unexpected event %d", event);
-    break;
+    if (ptest->handler(contp, event, edata) == TS_ERROR) {
+      *(ptest->pstatus) = REGRESSION_TEST_FAILED;
+
+      TSContDataSet(contp, NULL);
+      delete ptest;
+    }
   }
 
-  return 0;
+  return TS_EVENT_NONE;
 }
 
-EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpParentProxySet)(RegressionTest *test, int level, int *pstatus)
+EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpParentProxySet_Fail)(RegressionTest *test, int level, int *pstatus)
 {
   *pstatus = REGRESSION_TEST_INPROGRESS;
 
   TSCont cont = TSContCreate(parent_proxy_handler, TSMutexCreate());
   if (cont == NULL) {
-    SDK_RPRINT(test, "TSHttpTxnParentProxySet", "TestCase", TC_FAIL, "Unable to create continuation");
+    SDK_RPRINT(test, "TSHttpTxnParentProxySet", "FailCase", TC_FAIL, "Unable to create continuation");
     *pstatus = REGRESSION_TEST_FAILED;
     return;
   }
 
-  ParentTest *ptest = (ParentTest *)TSmalloc(sizeof(SocketTest));
-  ink_zero(*ptest);
+  ParentTest *ptest = new ParentTest(test, pstatus);
 
-  ptest->regtest = test;
-  ptest->pstatus = pstatus;
-  ptest->magic = MAGIC_ALIVE;
+  ptest->testcase = "FailCase";
+  ptest->handler = parent_proxy_fail;
   TSContDataSet(cont, ptest);
 
-  /* If parent proxy routing is not enabled, enable it for the life of the test. */
-  RecGetRecordBool("proxy.config.http.parent_proxy_routing_enable", &ptest->parent_proxy_routing_enable);
-  if (!ptest->parent_proxy_routing_enable) {
-    rprintf(test, "enabling proxy.config.http.parent_proxy_routing_enable");
-    RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
+  /* Hook read request headers, since that is the earliest reasonable place to set the parent proxy. */
+  TSHttpHookAdd(TS_HTTP_READ_REQUEST_HDR_HOOK, cont);
+
+  /* Create a new synthetic server */
+  ptest->os = synserver_create(SYNSERVER_LISTEN_PORT, TSContCreate(synserver_vc_refuse, TSMutexCreate()));
+  synserver_start(ptest->os);
+
+  /* Create a client transaction */
+  ptest->browser = synclient_txn_create();
+
+  // HTTP_REQUEST_FORMAT10 is a hostname, so we will need to set the parent to the synserver to get a response.
+  char *request = generate_request(10);
+  synclient_txn_send_request(ptest->browser, request);
+  TSfree(request);
+
+  TSContSchedule(cont, 25, TS_THREAD_POOL_DEFAULT);
+}
+
+EXCLUSIVE_REGRESSION_TEST(SDK_API_HttpParentProxySet_Success)(RegressionTest *test, int level, int *pstatus)
+{
+  *pstatus = REGRESSION_TEST_INPROGRESS;
+
+  TSCont cont = TSContCreate(parent_proxy_handler, TSMutexCreate());
+  if (cont == NULL) {
+    SDK_RPRINT(test, "TSHttpTxnParentProxySet", "SuccessCase", TC_FAIL, "Unable to create continuation");
+    *pstatus = REGRESSION_TEST_FAILED;
+    return;
   }
 
-  RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
+  ParentTest *ptest = new ParentTest(test, pstatus);
+
+  ptest->testcase = "SuccessCase";
+  ptest->handler = parent_proxy_success;
+  TSContDataSet(cont, ptest);
+
   /* Hook read request headers, since that is the earliest reasonable place to set the parent proxy. */
   TSHttpHookAdd(TS_HTTP_READ_REQUEST_HDR_HOOK, cont);
 
   /* Create a new synthetic server */
-  ptest->os = synserver_create(SYNSERVER_LISTEN_PORT);
+  ptest->os = synserver_create(SYNSERVER_LISTEN_PORT, TSContCreate(synserver_vc_accept, TSMutexCreate()));
   synserver_start(ptest->os);
 
   /* Create a client transaction */
diff --git a/proxy/InkAPITestTool.cc b/proxy/InkAPITestTool.cc
index 1ebac13..4974887 100644
--- a/proxy/InkAPITestTool.cc
+++ b/proxy/InkAPITestTool.cc
@@ -154,7 +154,8 @@ SocketServer *synserver_create(int port);
 static int synserver_start(SocketServer *s);
 static int synserver_stop(SocketServer *s);
 static int synserver_delete(SocketServer *s);
-static int synserver_accept_handler(TSCont contp, TSEvent event, void *data);
+static int synserver_vc_accept(TSCont contp, TSEvent event, void *data);
+static int synserver_vc_refuse(TSCont contp, TSEvent event, void *data);
 static int synserver_txn_close(TSCont contp);
 static int synserver_txn_write_response(TSCont contp);
 static int synserver_txn_write_response_handler(TSCont contp, TSEvent event, void *data);
@@ -761,7 +762,7 @@ synclient_txn_main_handler(TSCont contp, TSEvent event, void *data)
 //////////////////////////////////////////////////////////////////////////////
 
 SocketServer *
-synserver_create(int port)
+synserver_create(int port, TSCont cont)
 {
   if (port != SYNSERVER_DUMMY_PORT) {
     TSAssert(port > 0);
@@ -772,11 +773,17 @@ synserver_create(int port)
   s->magic = MAGIC_ALIVE;
   s->accept_port = port;
   s->accept_action = NULL;
-  s->accept_cont = TSContCreate(synserver_accept_handler, TSMutexCreate());
+  s->accept_cont = cont;
   TSContDataSet(s->accept_cont, s);
   return s;
 }
 
+SocketServer *
+synserver_create(int port)
+{
+  return synserver_create(port, TSContCreate(synserver_vc_accept, TSMutexCreate()));
+}
+
 static int
 synserver_start(SocketServer *s)
 {
@@ -828,7 +835,21 @@ synserver_delete(SocketServer *s)
 }
 
 static int
-synserver_accept_handler(TSCont contp, TSEvent event, void *data)
+synserver_vc_refuse(TSCont contp, TSEvent event, void *data)
+{
+  TSAssert((event == TS_EVENT_NET_ACCEPT) || (event == TS_EVENT_NET_ACCEPT_FAILED));
+
+  SocketServer *s = (SocketServer *)TSContDataGet(contp);
+  TSAssert(s->magic == MAGIC_ALIVE);
+
+  TSDebug(SDBG_TAG, "NET_ACCEPT");
+
+  TSVConnClose((TSVConn)data);
+  return TS_EVENT_IMMEDIATE;
+}
+
+static int
+synserver_vc_accept(TSCont contp, TSEvent event, void *data)
 {
   TSAssert((event == TS_EVENT_NET_ACCEPT) || (event == TS_EVENT_NET_ACCEPT_FAILED));
 
diff --git a/proxy/ParentSelection.h b/proxy/ParentSelection.h
index b72cbd8..51623ec 100644
--- a/proxy/ParentSelection.h
+++ b/proxy/ParentSelection.h
@@ -334,29 +334,39 @@ public:
   void
   selectParent(bool firstCall, ParentResult *result, RequestData *rdata)
   {
-    ink_release_assert(result->rec->selection_strategy != NULL);
-    return result->rec->selection_strategy->selectParent(&policy, firstCall, result, rdata);
+    if (!result->is_api_result()) {
+      ink_release_assert(result->rec->selection_strategy != NULL);
+      return result->rec->selection_strategy->selectParent(&policy, firstCall, result, rdata);
+    }
   }
 
   void
   markParentDown(ParentResult *result)
   {
-    ink_release_assert(result->rec->selection_strategy != NULL);
-    result->rec->selection_strategy->markParentDown(&policy, result);
+    if (!result->is_api_result()) {
+      ink_release_assert(result->rec->selection_strategy != NULL);
+      result->rec->selection_strategy->markParentDown(&policy, result);
+    }
   }
 
   uint32_t
   numParents(ParentResult *result)
   {
-    ink_release_assert(result->rec->selection_strategy != NULL);
-    return result->rec->selection_strategy->numParents(result);
+    if (result->is_api_result()) {
+      return 1;
+    } else {
+      ink_release_assert(result->rec->selection_strategy != NULL);
+      return result->rec->selection_strategy->numParents(result);
+    }
   }
 
   void
   markParentUp(ParentResult *result)
   {
-    ink_release_assert(result != NULL);
-    result->rec->selection_strategy->markParentUp(result);
+    if (!result->is_api_result()) {
+      ink_release_assert(result != NULL);
+      result->rec->selection_strategy->markParentUp(result);
+    }
   }
 
   P_table *parent_table;

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 10/28: TS-3922: Add independent websocket timeouts. This closes #590

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit d03f92f8b86580aa2069272187ea6d9f613d6bf4
Author: Brian Geffon <br...@apache.org>
AuthorDate: Wed Apr 20 21:32:03 2016 -0700

    TS-3922: Add independent websocket timeouts. This closes #590
    
    (cherry picked from commit 1466ccadd2c3cee31de9835249bf24f29a1d9ea1)
    
     Conflicts:
    	proxy/http/HttpConfig.h
---
 doc/admin-guide/files/records.config.en.rst | 12 ++++++++++++
 iocore/net/UnixNet.cc                       |  9 +++++----
 mgmt/RecordsConfig.cc                       |  4 ++++
 proxy/http/HttpConfig.cc                    |  5 +++++
 proxy/http/HttpConfig.h                     |  4 ++++
 proxy/http/HttpSM.cc                        | 14 ++++++++++++++
 6 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index bdedc3d..1fa0d3e 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1116,6 +1116,18 @@ HTTP Connection Timeouts
 
    Specifies how long Traffic Server keeps connections to origin servers open if the transaction stalls.
 
+.. ts:cv:: CONFIG proxy.config.websocket.no_activity_timeout INT 600
+   :reloadable:
+   :overridable:
+
+   Specifies how long Traffic Server keeps connections open if a websocket stalls.
+
+.. ts:cv:: CONFIG proxy.config.websocket.active_timeout INT 3600
+   :reloadable:
+   :overridable:
+
+   The maximum amount of time Traffic Server keeps websocket connections open.
+
 .. ts:cv:: CONFIG proxy.config.http.transaction_active_timeout_in INT 900
    :reloadable:
 
diff --git a/iocore/net/UnixNet.cc b/iocore/net/UnixNet.cc
index d749844..5066b47 100644
--- a/iocore/net/UnixNet.cc
+++ b/iocore/net/UnixNet.cc
@@ -85,8 +85,9 @@ public:
         vc->set_inactivity_timeout(HRTIME_SECONDS(default_inactivity_timeout));
         NET_INCREMENT_DYN_STAT(default_inactivity_timeout_stat);
       } else {
-        Debug("inactivity_cop_verbose", "vc: %p now: %" PRId64 " timeout at: %" PRId64 " timeout in: %" PRId64, vc, now,
-              ink_hrtime_to_sec(vc->next_inactivity_timeout_at), ink_hrtime_to_sec(vc->inactivity_timeout_in));
+        Debug("inactivity_cop_verbose", "vc: %p now: %" PRId64 " timeout at: %" PRId64 " timeout in: %" PRId64, vc,
+              ink_hrtime_to_sec(now), ink_hrtime_to_sec(vc->next_inactivity_timeout_at),
+              ink_hrtime_to_sec(vc->inactivity_timeout_in));
       }
 
       if (vc->next_inactivity_timeout_at && vc->next_inactivity_timeout_at < now) {
@@ -96,8 +97,8 @@ public:
           NET_SUM_DYN_STAT(keep_alive_queue_timeout_total_stat, diff);
           NET_INCREMENT_DYN_STAT(keep_alive_queue_timeout_count_stat);
         }
-        Debug("inactivity_cop_verbose", "vc: %p now: %" PRId64 " timeout at: %" PRId64 " timeout in: %" PRId64, vc, now,
-              vc->next_inactivity_timeout_at, vc->inactivity_timeout_in);
+        Debug("inactivity_cop_verbose", "vc: %p now: %" PRId64 " timeout at: %" PRId64 " timeout in: %" PRId64, vc,
+              ink_hrtime_to_sec(now), vc->next_inactivity_timeout_at, vc->inactivity_timeout_in);
         vc->handleEvent(EVENT_IMMEDIATE, e);
       }
     }
diff --git a/mgmt/RecordsConfig.cc b/mgmt/RecordsConfig.cc
index 6361971..221d0ca 100644
--- a/mgmt/RecordsConfig.cc
+++ b/mgmt/RecordsConfig.cc
@@ -537,6 +537,10 @@ static const RecordElement RecordsConfig[] =
   ,
   {RECT_CONFIG, "proxy.config.http.keep_alive_no_activity_timeout_out", RECD_INT, "120", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
   ,
+  {RECT_CONFIG, "proxy.config.websocket.no_activity_timeout", RECD_INT, "600", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
+  ,
+  {RECT_CONFIG, "proxy.config.websocket.active_timeout", RECD_INT, "3600", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
+  ,
   {RECT_CONFIG, "proxy.config.http.transaction_no_activity_timeout_in", RECD_INT, "30", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
   ,
   {RECT_CONFIG, "proxy.config.http.transaction_no_activity_timeout_out", RECD_INT, "30", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 3cf91ee..0891c95 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -939,6 +939,9 @@ HttpConfig::startup()
                                     "proxy.config.http.transaction_no_activity_timeout_in");
   HttpEstablishStaticConfigLongLong(c.oride.transaction_no_activity_timeout_out,
                                     "proxy.config.http.transaction_no_activity_timeout_out");
+  HttpEstablishStaticConfigLongLong(c.oride.websocket_active_timeout, "proxy.config.websocket.active_timeout");
+  HttpEstablishStaticConfigLongLong(c.oride.websocket_inactive_timeout, "proxy.config.websocket.no_activity_timeout");
+
   HttpEstablishStaticConfigLongLong(c.transaction_active_timeout_in, "proxy.config.http.transaction_active_timeout_in");
   HttpEstablishStaticConfigLongLong(c.oride.transaction_active_timeout_out, "proxy.config.http.transaction_active_timeout_out");
   HttpEstablishStaticConfigLongLong(c.accept_no_activity_timeout, "proxy.config.http.accept_no_activity_timeout");
@@ -1215,6 +1218,8 @@ HttpConfig::reconfigure()
   params->oride.transaction_no_activity_timeout_out = m_master.oride.transaction_no_activity_timeout_out;
   params->transaction_active_timeout_in = m_master.transaction_active_timeout_in;
   params->oride.transaction_active_timeout_out = m_master.oride.transaction_active_timeout_out;
+  params->oride.websocket_active_timeout = m_master.oride.websocket_active_timeout;
+  params->oride.websocket_inactive_timeout = m_master.oride.websocket_inactive_timeout;
   params->accept_no_activity_timeout = m_master.accept_no_activity_timeout;
   params->oride.background_fill_active_timeout = m_master.oride.background_fill_active_timeout;
   params->oride.background_fill_threshold = m_master.oride.background_fill_threshold;
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index 8e2b66f..58de48f 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -422,6 +422,8 @@ struct OverridableHttpConfigParams {
       transaction_no_activity_timeout_in(30),
       transaction_no_activity_timeout_out(30),
       transaction_active_timeout_out(0),
+      websocket_active_timeout(3600),
+      websocket_inactive_timeout(600),
       origin_max_connections(0),
       origin_max_connections_queue(0),
       attach_server_session_to_client(0),
@@ -597,6 +599,8 @@ struct OverridableHttpConfigParams {
   MgmtInt transaction_no_activity_timeout_in;
   MgmtInt transaction_no_activity_timeout_out;
   MgmtInt transaction_active_timeout_out;
+  MgmtInt websocket_active_timeout;
+  MgmtInt websocket_inactive_timeout;
   MgmtInt origin_max_connections;
   MgmtInt origin_max_connections_queue;
 
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 97c4568..094aafa 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1630,6 +1630,20 @@ HttpSM::handle_api_return()
       // a blind tunnel.
       if (t_state.is_websocket) {
         HTTP_INCREMENT_DYN_STAT(http_websocket_current_active_client_connections_stat);
+
+        if (ua_session) {
+          DebugSM("http_websocket", "(client session) Setting websocket active timeout=%ld s and inactive timeout=%ld s",
+                  t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
+          ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
+          ua_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));
+        }
+
+        if (server_session) {
+          DebugSM("http_websocket", "(server session) Setting websocket active timeout=%ld s and inactive timeout=%ld s",
+                  t_state.txn_conf->websocket_active_timeout, t_state.txn_conf->websocket_inactive_timeout);
+          server_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_active_timeout));
+          server_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->websocket_inactive_timeout));
+        }
       }
 
       setup_blind_tunnel(true);

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 13/28: TS-3922: Websocket Timeouts, transaction overrideable & clang format

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 6390d486ae9e4bfa3136677f86f52ef428a0f9ec
Author: Brian Geffon <br...@apache.org>
AuthorDate: Thu Apr 21 04:35:36 2016 -0700

    TS-3922: Websocket Timeouts, transaction overrideable & clang format
    
    (cherry picked from commit 4fdf8ac21e4dcac97297f6afb03c50a5c997f996)
---
 plugins/experimental/ts_lua/ts_lua_http_config.c | 198 ++++++++++++-----------
 proxy/InkAPITest.cc                              |   4 +-
 2 files changed, 103 insertions(+), 99 deletions(-)

diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 8b0ddf4..31abb1e 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -114,6 +114,8 @@ typedef enum {
   TS_LUA_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY = TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY,
   TS_LUA_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT = TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT,
   TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE = TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE,
+  TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT = TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
+  TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
 } TSLuaOverridableConfigKey;
 
@@ -124,104 +126,104 @@ typedef enum {
   TS_LUA_TIMEOUT_NO_ACTIVITY = 3
 } TSLuaTimeoutKey;
 
-ts_lua_var_item ts_lua_http_config_vars[] = {
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_URL_REMAP_PRISTINE_HOST_HDR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_POST_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_OPTION_FLAG_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_TCP_INIT_CWND),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SEND_HTTP11_REQUESTS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HTTP),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_REQUIRED_HEADERS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_REQUEST_VIA_STR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_STALE_AGE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_TIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_STR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_MARK_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_TOS_OUT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_SIZE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_LOOKUP),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NORMALIZE_AE_GZIP),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_SIZE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ACCEPT_ENCODING_FILTER_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_MAX_AGE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_WRITE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SLOW_LOG_THRESHOLD),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GENERATION),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_BODY_FACTORY_TEMPLATE_BASE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ENABLE_REDIRECTION),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE),
-  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
-};
+ts_lua_var_item ts_lua_http_config_vars[] = {TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_URL_REMAP_PRISTINE_HOST_HDR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_POST_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_OPTION_FLAG_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SERVER_TCP_INIT_CWND),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SEND_HTTP11_REQUESTS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HTTP),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_REQUIRED_HEADERS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_REQUEST_VIA_STR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_STALE_AGE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_TIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_SERVER_STR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_MARK_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_SOCK_PACKET_TOS_OUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_SIZE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_LOOKUP),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NORMALIZE_AE_GZIP),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_SIZE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ACCEPT_ENCODING_FILTER_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_MAX_AGE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_RANGE_WRITE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_SLOW_LOG_THRESHOLD),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_GENERATION),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_BODY_FACTORY_TEMPLATE_BASE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ENABLE_REDIRECTION),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
+                                             TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY)};
 
 // Needed to make sure we have the latest list of overridable http config vars when compiling
 #define NUM_HTTP_CONFIG_VARS (sizeof(ts_lua_http_config_vars) / sizeof(ts_lua_http_config_vars[0]))
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 5509328..e635219 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7349,7 +7349,9 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {"proxy.config.url_r
                                                              "proxy.config.http.cache.max_open_write_retries",
                                                              "proxy.config.http.redirect_use_orig_cache_key",
                                                              "proxy.config.http.attach_server_session_to_client",
-                                                             "proxy.config.http.origin_max_connections_queue"};
+                                                             "proxy.config.http.origin_max_connections_queue",
+                                                             "proxy.config.websocket.no_activity_timeout",
+                                                             "proxy.config.websocket.active_timeout"};
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
 {

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 09/28: WebSocket timeouts: transaction overrideable

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 2fd83d76d67bff35c855efa3ff86354e3ac3b6f5
Author: Brian Geffon <br...@apache.org>
AuthorDate: Wed Sep 23 21:39:01 2015 -0700

    WebSocket timeouts: transaction overrideable
    
    (cherry picked from commit f30ae30ecdffd6d18b9f75fb91874da85d70b113)
---
 .../api/functions/TSHttpOverridableConfig.en.rst               |  2 ++
 lib/ts/apidefs.h.in                                            |  2 ++
 proxy/InkAPI.cc                                                | 10 ++++++++++
 3 files changed, 14 insertions(+)

diff --git a/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst b/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
index c94aaa4..26c47cc 100644
--- a/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
+++ b/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
@@ -107,6 +107,8 @@ The following configurations (from ``records.config``) are overridable.
 |   :ts:cv:`proxy.config.http.transaction_no_activity_timeout_in`
 |   :ts:cv:`proxy.config.http.transaction_no_activity_timeout_out`
 |   :ts:cv:`proxy.config.http.transaction_active_timeout_out`
+|   :ts:cv:`proxy.config.websocket.no_activity_timeout`
+|   :ts:cv:`proxy.config.websocket.active_timeout`
 |   :ts:cv:`proxy.config.http.origin_max_connections`
 |   :ts:cv:`proxy.config.http.connect_attempts_max_retries`
 |   :ts:cv:`proxy.config.http.connect_attempts_max_retries_dead_server`
diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index cbd47a9..b876e99 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -695,6 +695,8 @@ typedef enum {
   TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY,
   TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT,
   TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE,
+  TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
+  TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_CONFIG_LAST_ENTRY
 } TSOverridableConfigKey;
 
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index f32f7d5..bbcdcdd 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7904,6 +7904,12 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
   case TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS:
     ret = &overridableHttpConfig->proxy_response_hsts_include_subdomains;
     break;
+  case TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT:
+    ret = &overridableHttpConfig->websocket_active_timeout;
+    break;
+  case TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT:
+    ret = &overridableHttpConfig->websocket_inactive_timeout;
+    break;
   case TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME:
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->cache_open_read_retry_time;
@@ -8254,6 +8260,8 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
         cnf = TS_CONFIG_NET_SOCK_OPTION_FLAG_OUT;
       else if (!strncmp(name, "proxy.config.net.sock_packet_mark_out", length))
         cnf = TS_CONFIG_NET_SOCK_PACKET_MARK_OUT;
+      else if (!strncmp(name, "proxy.config.websocket.active_timeout", length))
+        cnf = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT;
       break;
     }
     break;
@@ -8384,6 +8392,8 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
         cnf = TS_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT;
       else if (!strncmp(name, "proxy.config.http.connect_attempts_timeout", length))
         cnf = TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT;
+      else if (!strncmp(name, "proxy.config.websocket.no_activity_timeout", length))
+        cnf = TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT;
       break;
     }
     break;

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 02/28: TS-4180: Support for multiple intermediate cert chains if openssl 1.0.2 is present. This closes #578.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit a394bdc0097efdf39bef56d1ed774ee9b4ad5d55
Author: shinrich <sh...@yahoo-inc.com>
AuthorDate: Mon Apr 18 13:50:29 2016 -0500

    TS-4180: Support for multiple intermediate cert chains if openssl 1.0.2 is present.  This closes #578.
    
    (cherry picked from commit dfd3c078ab3bd6cf110a026a55e833ffa332ff00)
---
 ci/tsqa/tests/test_https.py |  3 ++
 iocore/net/SSLUtils.cc      | 68 ++++++++++++++++++++++++++++++++-------------
 2 files changed, 51 insertions(+), 20 deletions(-)

diff --git a/ci/tsqa/tests/test_https.py b/ci/tsqa/tests/test_https.py
index 4d0f57a..7680b27 100644
--- a/ci/tsqa/tests/test_https.py
+++ b/ci/tsqa/tests/test_https.py
@@ -229,6 +229,9 @@ class TestMix(helpers.EnvironmentCase, CertSelectionMixin):
     '''
     @classmethod
     def setUpEnv(cls, env):
+        # Temporarily skipping TestMix until we can figure out how to specify underlying open ssl versions
+        # The behaviour of the intermediate cert chains depends on openssl version
+        raise helpers.unittest.SkipTest('Skip TestMix until we figure out openssl version tracking');
         # add an SSL port to ATS
         cls.ssl_port = tsqa.utils.bind_unused_port()[1]
         cls.configs['records.config']['CONFIG']['proxy.config.http.server_ports'] += ' {0}:ssl'.format(cls.ssl_port)
diff --git a/iocore/net/SSLUtils.cc b/iocore/net/SSLUtils.cc
index 0c419b9..0e75133 100644
--- a/iocore/net/SSLUtils.cc
+++ b/iocore/net/SSLUtils.cc
@@ -160,6 +160,7 @@ SSL_locking_callback(int mode, int type, const char *file, int line)
   }
 }
 
+#ifndef SSL_CTX_add0_chain_cert
 static bool
 SSL_CTX_add_extra_chain_cert_file(SSL_CTX *ctx, const char *chainfile)
 {
@@ -183,6 +184,7 @@ SSL_CTX_add_extra_chain_cert_file(SSL_CTX *ctx, const char *chainfile)
 
   return true;
 }
+#endif
 
 bool
 ssl_session_timed_out(SSL_SESSION *session)
@@ -1407,7 +1409,11 @@ SSLInitServerContext(const SSLConfigParams *params, const ssl_user_config &sslMu
       // Load up any additional chain certificates
       X509 *ca;
       while ((ca = PEM_read_bio_X509(bio.get(), NULL, 0, NULL))) {
+#ifdef SSL_CTX_add0_chain_cert
+        if (!SSL_CTX_add0_chain_cert(ctx, ca)) {
+#else
         if (!SSL_CTX_add_extra_chain_cert(ctx, ca)) {
+#endif
           X509_free(ca);
           goto fail;
         }
@@ -1417,29 +1423,51 @@ SSLInitServerContext(const SSLConfigParams *params, const ssl_user_config &sslMu
       if (!SSLPrivateKeyHandler(ctx, params, completeServerCertPath, keyPath)) {
         goto fail;
       }
-    }
 
-    // First, load any CA chains from the global chain file.
-    if (params->serverCertChainFilename) {
-      ats_scoped_str completeServerCertChainPath(Layout::relative_to(params->serverCertPathOnly, params->serverCertChainFilename));
-      if (!SSL_CTX_add_extra_chain_cert_file(ctx, completeServerCertChainPath)) {
-        SSLError("failed to load global certificate chain from %s", (const char *)completeServerCertChainPath);
-        goto fail;
-      }
-      if (SSLConfigParams::load_ssl_file_cb) {
-        SSLConfigParams::load_ssl_file_cb(completeServerCertChainPath, CONFIG_FLAG_UNVERSIONED);
+      // Must load all the intermediate certificates before starting the next chain
+
+      // First, load any CA chains from the global chain file.  This should probably
+      // eventually be a comma separated list too.  For now we will load it in all chains even
+      // though it only makes sense in one chain
+      if (params->serverCertChainFilename) {
+        ats_scoped_str completeServerCertChainPath(
+          Layout::relative_to(params->serverCertPathOnly, params->serverCertChainFilename));
+#ifdef SSL_CTX_add0_chain_cert
+        scoped_BIO bio(BIO_new_file(completeServerCertChainPath, "r"));
+        X509 *intermediate_cert = PEM_read_bio_X509(bio.get(), NULL, 0, NULL);
+        if (!intermediate_cert || !SSL_CTX_add0_chain_cert(ctx, intermediate_cert)) {
+          if (intermediate_cert)
+            X509_free(intermediate_cert);
+#else
+        if (!SSL_CTX_add_extra_chain_cert_file(ctx, completeServerCertChainPath)) {
+#endif
+          SSLError("failed to load global certificate chain from %s", (const char *)completeServerCertChainPath);
+          goto fail;
+        }
+        if (SSLConfigParams::load_ssl_file_cb) {
+          SSLConfigParams::load_ssl_file_cb(completeServerCertChainPath, CONFIG_FLAG_UNVERSIONED);
+        }
       }
-    }
 
-    // Now, load any additional certificate chains specified in this entry.
-    if (sslMultCertSettings.ca) {
-      ats_scoped_str completeServerCertChainPath(Layout::relative_to(params->serverCertPathOnly, ca_tok.getNext()));
-      if (!SSL_CTX_add_extra_chain_cert_file(ctx, completeServerCertChainPath)) {
-        SSLError("failed to load certificate chain from %s", (const char *)completeServerCertChainPath);
-        goto fail;
-      }
-      if (SSLConfigParams::load_ssl_file_cb) {
-        SSLConfigParams::load_ssl_file_cb(completeServerCertChainPath, CONFIG_FLAG_UNVERSIONED);
+      // Now, load any additional certificate chains specified in this entry.
+      if (sslMultCertSettings.ca) {
+        const char *ca_name = ca_tok.getNext();
+        ats_scoped_str completeServerCertChainPath(Layout::relative_to(params->serverCertPathOnly, ca_name));
+#ifdef SSL_CTX_add0_chain_cert
+        scoped_BIO bio(BIO_new_file(completeServerCertChainPath, "r"));
+        X509 *intermediate_cert = PEM_read_bio_X509(bio.get(), NULL, 0, NULL);
+        if (!intermediate_cert || !SSL_CTX_add0_chain_cert(ctx, intermediate_cert)) {
+          if (intermediate_cert)
+            X509_free(intermediate_cert);
+#else
+        if (!SSL_CTX_add_extra_chain_cert_file(ctx, completeServerCertChainPath)) {
+#endif
+          SSLError("failed to load certificate chain from %s", (const char *)completeServerCertChainPath);
+          goto fail;
+        }
+        if (SSLConfigParams::load_ssl_file_cb) {
+          SSLConfigParams::load_ssl_file_cb(completeServerCertChainPath, CONFIG_FLAG_UNVERSIONED);
+        }
       }
     }
   }

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 19/28: Remove redundant ACTION_RESULT macro parentheses.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit cf2bb28a503b02ba7830ed112dbe94647416315e
Author: kreats <zh...@gmail.com>
AuthorDate: Thu Mar 31 21:48:22 2016 -0400

    Remove redundant ACTION_RESULT macro parentheses.
    
    This closes #547.
    
    (cherry picked from commit 6aea6c51b145988a806326e26f7e5831c51544cc)
---
 iocore/eventsystem/I_Action.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/iocore/eventsystem/I_Action.h b/iocore/eventsystem/I_Action.h
index 4f534d0..6ee2eaa 100644
--- a/iocore/eventsystem/I_Action.h
+++ b/iocore/eventsystem/I_Action.h
@@ -204,8 +204,7 @@ public:
 
 #define MAKE_ACTION_RESULT(_x) (Action *)(((uintptr_t)((_x << 1) + 1)))
 
-#define ACTION_RESULT(_x) \
-  (int)((((uintptr_t)_x)&1)!=0?(((uintptr_t)>>1):(uintptr_t)0))
+#define ACTION_RESULT(_x) (int)((((uintptr_t)_x) & 1) != 0 ? ((uintptr_t)(_x) >> 1) : (uintptr_t)0)
 
 #define IS_ACTION_RESULT(_x) ((((uintptr_t)_x) & 1) != 0)
 

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 05/28: TS-4046: Prevent memory leak of HTTP heap for server intercept case. This close #577.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 26d84663fef03488a27e8a021658b9af47fdbab3
Author: Alan M. Carroll <so...@yahoo-inc.com>
AuthorDate: Mon Apr 18 10:14:24 2016 -0500

    TS-4046: Prevent memory leak of HTTP heap for server intercept case.
    This close #577.
    
    (cherry picked from commit 5abf6aca383e34b5aa1c0e3248936d858806acbe)
---
 proxy/hdrs/HTTP.h          | 7 ++++---
 proxy/http/HttpTransact.cc | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/proxy/hdrs/HTTP.h b/proxy/hdrs/HTTP.h
index ae20b48..e457f61 100644
--- a/proxy/hdrs/HTTP.h
+++ b/proxy/hdrs/HTTP.h
@@ -507,7 +507,7 @@ public:
   int valid() const;
 
   void create(HTTPType polarity, HdrHeap *heap = NULL);
-  void clear();
+  void destroy();
   void reset();
   void copy(const HTTPHdr *hdr);
   void copy_shallow(const HTTPHdr *hdr);
@@ -796,12 +796,13 @@ HTTPHdr::create(HTTPType polarity, HdrHeap *heap)
 }
 
 inline void
-HTTPHdr::clear()
+HTTPHdr::destroy()
 {
   if (m_http && m_http->m_polarity == HTTP_TYPE_REQUEST) {
     m_url_cached.clear();
   }
-  this->HdrHeapSDKHandle::clear();
+  // Removing the only pointers to this data therefore it needs to get cleaned up or leak.
+  this->HdrHeapSDKHandle::destroy();
   m_http = NULL;
   m_mime = NULL;
 }
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index d44ea88..1500f0a 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -934,7 +934,7 @@ done:
     HTTP_INCREMENT_DYN_STAT(http_invalid_client_requests_stat);
     TRANSACT_RETURN(SM_ACTION_SEND_ERROR_CACHE_NOOP, NULL);
   } else {
-    s->hdr_info.client_response.clear(); // anything previously set is invalid from this point forward
+    s->hdr_info.client_response.destroy(); // anything previously set is invalid from this point forward
     DebugTxn("http_trans", "END HttpTransact::EndRemapRequest");
 
     if (s->is_upgrade_request && s->post_remap_upgrade_return_point) {

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 28/28: TS-3123 Make proxy.config.http.transaction_active_timeout_in overridable

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 262783d67817cbfb51276c0ba035c8265a993d1c
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Tue May 3 14:14:55 2016 -0600

    TS-3123 Make proxy.config.http.transaction_active_timeout_in overridable
    
    This does set the timeout twice though, which is necessary assuming
    that we want to retain backward compatibility where the activity
    timeout is set way early.
    
    (cherry picked from commit e44ad2d8b2c22af7766909efded485f1d079c522)
---
 doc/admin-guide/files/records.config.en.rst      | 1 +
 lib/ts/apidefs.h.in                              | 1 +
 plugins/experimental/ts_lua/ts_lua_http_config.c | 2 ++
 proxy/InkAPI.cc                                  | 7 +++++++
 proxy/InkAPITest.cc                              | 1 +
 proxy/http/HttpConfig.cc                         | 4 ++--
 proxy/http/HttpConfig.h                          | 4 ++--
 proxy/http/HttpSM.cc                             | 4 ++--
 proxy/http/HttpTransact.cc                       | 3 +++
 9 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index 0483a95..58e57c6 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1131,6 +1131,7 @@ HTTP Connection Timeouts
 
 .. ts:cv:: CONFIG proxy.config.http.transaction_active_timeout_in INT 900
    :reloadable:
+   :overridable:
 
    The maximum amount of time Traffic Server can remain connected to a client. If the transfer to the client is not complete before this
    timeout expires, then Traffic Server closes the connection.
diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index 4fb0977..77c101e 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -699,6 +699,7 @@ typedef enum {
   TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
   TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
+  TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
   TS_CONFIG_LAST_ENTRY
 } TSOverridableConfigKey;
 
diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 031a2a3..1755fb3 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -118,6 +118,7 @@ typedef enum {
   TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
   TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT = TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
   TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS = TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
+  TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN = TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
   TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
 } TSLuaOverridableConfigKey;
 
@@ -228,6 +229,7 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
 };
 
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 2ccb59f..55784bb 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7974,6 +7974,9 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
   case TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS:
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->parent_connect_attempts;
+  case TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->transaction_active_timeout_in;
     break;
   // This helps avoiding compiler warnings, yet detect unhandled enum members.
   case TS_CONFIG_NULL:
@@ -8527,6 +8530,10 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
       else if (!strncmp(name, "proxy.config.http.cache.guaranteed_max_lifetime", length))
         cnf = TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME;
       break;
+    case 'n':
+      if (!strncmp(name, "proxy.config.http.transaction_active_timeout_in", length))
+        cnf = TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN;
+      break;
     case 't':
       if (!strncmp(name, "proxy.config.http.post_connect_attempts_timeout", length))
         cnf = TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT;
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 6aa5e07..8f87248 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7458,6 +7458,7 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
   "proxy.config.websocket.active_timeout",
   "proxy.config.http.uncacheable_requests_bypass_parent",
   "proxy.config.http.parent_proxy.total_connect_attempts",
+  "proxy.config.http.transaction_active_timeout_in",
 };
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 76cc96f..1077926 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -942,7 +942,7 @@ HttpConfig::startup()
   HttpEstablishStaticConfigLongLong(c.oride.websocket_active_timeout, "proxy.config.websocket.active_timeout");
   HttpEstablishStaticConfigLongLong(c.oride.websocket_inactive_timeout, "proxy.config.websocket.no_activity_timeout");
 
-  HttpEstablishStaticConfigLongLong(c.transaction_active_timeout_in, "proxy.config.http.transaction_active_timeout_in");
+  HttpEstablishStaticConfigLongLong(c.oride.transaction_active_timeout_in, "proxy.config.http.transaction_active_timeout_in");
   HttpEstablishStaticConfigLongLong(c.oride.transaction_active_timeout_out, "proxy.config.http.transaction_active_timeout_out");
   HttpEstablishStaticConfigLongLong(c.accept_no_activity_timeout, "proxy.config.http.accept_no_activity_timeout");
 
@@ -1216,7 +1216,7 @@ HttpConfig::reconfigure()
   params->oride.keep_alive_no_activity_timeout_out = m_master.oride.keep_alive_no_activity_timeout_out;
   params->oride.transaction_no_activity_timeout_in = m_master.oride.transaction_no_activity_timeout_in;
   params->oride.transaction_no_activity_timeout_out = m_master.oride.transaction_no_activity_timeout_out;
-  params->transaction_active_timeout_in = m_master.transaction_active_timeout_in;
+  params->oride.transaction_active_timeout_in = m_master.oride.transaction_active_timeout_in;
   params->oride.transaction_active_timeout_out = m_master.oride.transaction_active_timeout_out;
   params->oride.websocket_active_timeout = m_master.oride.websocket_active_timeout;
   params->oride.websocket_inactive_timeout = m_master.oride.websocket_inactive_timeout;
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index 5da1e4c..a872492 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -423,6 +423,7 @@ struct OverridableHttpConfigParams {
       transaction_no_activity_timeout_in(30),
       transaction_no_activity_timeout_out(30),
       transaction_active_timeout_out(0),
+      transaction_active_timeout_in(900),
       websocket_active_timeout(3600),
       websocket_inactive_timeout(600),
       origin_max_connections(0),
@@ -602,6 +603,7 @@ struct OverridableHttpConfigParams {
   MgmtInt transaction_no_activity_timeout_in;
   MgmtInt transaction_no_activity_timeout_out;
   MgmtInt transaction_active_timeout_out;
+  MgmtInt transaction_active_timeout_in;
   MgmtInt websocket_active_timeout;
   MgmtInt websocket_inactive_timeout;
   MgmtInt origin_max_connections;
@@ -738,7 +740,6 @@ public:
   // connection variables. timeouts are in seconds //
   ///////////////////////////////////////////////////
   MgmtByte session_auth_cache_keep_alive_enabled;
-  MgmtInt transaction_active_timeout_in;
   MgmtInt accept_no_activity_timeout;
 
   ////////////////////////////////////
@@ -941,7 +942,6 @@ inline HttpConfigParams::HttpConfigParams()
     url_expansions(NULL),
     num_url_expansions(0),
     session_auth_cache_keep_alive_enabled(1),
-    transaction_active_timeout_in(900),
     accept_no_activity_timeout(120),
     per_parent_connect_attempts(2),
     parent_connect_timeout(30),
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 052e932..c8f7cd1 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -577,8 +577,8 @@ HttpSM::attach_client_session(ProxyClientTransaction *client_vc, IOBufferReader
   /////////////////////////
   // set up timeouts     //
   /////////////////////////
-  client_vc->set_inactivity_timeout(HRTIME_SECONDS(HttpConfig::m_master.accept_no_activity_timeout));
-  client_vc->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_active_timeout_in));
+  client_vc->set_inactivity_timeout(HRTIME_SECONDS(t_state.http_config_param->accept_no_activity_timeout));
+  client_vc->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->transaction_active_timeout_in));
 
   ++reentrancy_count;
   // Add our state sm to the sm list
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 51358b7..87e1771 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -916,6 +916,9 @@ HttpTransact::EndRemapRequest(State *s)
   s->server_info.is_transparent = s->state_machine->ua_session ? s->state_machine->ua_session->is_outbound_transparent() : false;
 
 done:
+  // We now set the active-timeout again, since it might have been changed as part of the remap rules.
+  s->state_machine->ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(s->txn_conf->transaction_active_timeout_in));
+
   if (is_debug_tag_set("http_chdr_describe") || is_debug_tag_set("http_trans") || is_debug_tag_set("url_rewrite")) {
     DebugTxn("http_trans", "After Remapping:");
     obj_describe(s->hdr_info.client_request.m_http, 1);

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 26/28: TS-4427: traffic_logstats: Count TCP_MEM_HIT as a "normal" hit

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit b8168634e1056ce57221806b3046ad8145772b67
Author: Bryan Call <bc...@apache.org>
AuthorDate: Sun May 8 20:23:00 2016 -0700

    TS-4427: traffic_logstats: Count TCP_MEM_HIT as a "normal" hit
    
    (cherry picked from commit 4048f5a20e5c954f684c2c2e94563c1bff5add5b)
---
 proxy/logstats.cc | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/proxy/logstats.cc b/proxy/logstats.cc
index a326598..a4be9d0 100644
--- a/proxy/logstats.cc
+++ b/proxy/logstats.cc
@@ -122,6 +122,7 @@ struct OriginStats {
   struct {
     struct {
       ElapsedStats hit;
+      ElapsedStats hit_ram;
       ElapsedStats ims;
       ElapsedStats refresh;
       ElapsedStats other;
@@ -139,6 +140,7 @@ struct OriginStats {
   struct {
     struct {
       StatsCounter hit;
+      StatsCounter hit_ram;
       StatsCounter ims;
       StatsCounter refresh;
       StatsCounter other;
@@ -766,6 +768,7 @@ inline void
 init_elapsed(OriginStats *stats)
 {
   stats->elapsed.hits.hit.min = -1;
+  stats->elapsed.hits.hit_ram.min = -1;
   stats->elapsed.hits.ims.min = -1;
   stats->elapsed.hits.refresh.min = -1;
   stats->elapsed.hits.other.min = -1;
@@ -839,6 +842,12 @@ update_results_elapsed(OriginStats *stat, int result, int elapsed, int size)
     update_elapsed(stat->elapsed.hits.hit, elapsed, stat->results.hits.hit);
     update_elapsed(stat->elapsed.hits.total, elapsed, stat->results.hits.total);
     break;
+  case SQUID_LOG_TCP_MEM_HIT:
+    update_counter(stat->results.hits.hit_ram, size);
+    update_counter(stat->results.hits.total, size);
+    update_elapsed(stat->elapsed.hits.hit_ram, elapsed, stat->results.hits.hit_ram);
+    update_elapsed(stat->elapsed.hits.total, elapsed, stat->results.hits.total);
+    break;
   case SQUID_LOG_TCP_MISS:
     update_counter(stat->results.misses.miss, size);
     update_counter(stat->results.misses.total, size);
@@ -886,7 +895,6 @@ update_results_elapsed(OriginStats *stat, int result, int elapsed, int size)
     update_counter(stat->results.errors.total, size);
     break;
   case SQUID_LOG_TCP_DISK_HIT:
-  case SQUID_LOG_TCP_MEM_HIT:
   case SQUID_LOG_TCP_REF_FAIL_HIT:
   case SQUID_LOG_UDP_HIT:
   case SQUID_LOG_UDP_WEAK_HIT:
@@ -1848,6 +1856,7 @@ print_detail_stats(const OriginStats *stat, bool json = false)
     format_detail_header("Request Result");
 
   format_line(json ? "hit.direct" : "Cache hit", stat->results.hits.hit, stat->total, json);
+  format_line(json ? "hit.ram" : "Cache hit RAM", stat->results.hits.hit_ram, stat->total, json);
   format_line(json ? "hit.ims" : "Cache hit IMS", stat->results.hits.ims, stat->total, json);
   format_line(json ? "hit.refresh" : "Cache hit refresh", stat->results.hits.refresh, stat->total, json);
   format_line(json ? "hit.other" : "Cache hit other", stat->results.hits.other, stat->total, json);
@@ -2052,6 +2061,7 @@ print_detail_stats(const OriginStats *stat, bool json = false)
   }
 
   format_elapsed_line(json ? "hit.direct.latency" : "Cache hit", stat->elapsed.hits.hit, json);
+  format_elapsed_line(json ? "hit.ram.latency" : "Cache hit RAM", stat->elapsed.hits.hit_ram, json);
   format_elapsed_line(json ? "hit.ims.latency" : "Cache hit IMS", stat->elapsed.hits.ims, json);
   format_elapsed_line(json ? "hit.refresh.latency" : "Cache hit refresh", stat->elapsed.hits.refresh, json);
   format_elapsed_line(json ? "hit.other.latency" : "Cache hit other", stat->elapsed.hits.other, json);

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 07/28: TS-4046: Clang format fix.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 484e8d29e2f0ee6f72d69bd45353b91bf84f73dc
Author: Alan M. Carroll <so...@yahoo-inc.com>
AuthorDate: Tue Apr 19 11:32:05 2016 -0500

    TS-4046: Clang format fix.
    
    (cherry picked from commit f637325c6fb06b56e54d68115f36ef67aceb2d5b)
---
 proxy/http/HttpTransact.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 9b06ede..640082a 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -935,7 +935,7 @@ done:
     TRANSACT_RETURN(SM_ACTION_SEND_ERROR_CACHE_NOOP, NULL);
   } else {
     s->hdr_info.client_response.destroy(); // release the underlying memory.
-    s->hdr_info.client_response.clear(); // clear the pointers.
+    s->hdr_info.client_response.clear();   // clear the pointers.
     DebugTxn("http_trans", "END HttpTransact::EndRemapRequest");
 
     if (s->is_upgrade_request && s->post_remap_upgrade_return_point) {

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 16/28: TS-4401 Cleanup of the overridable switch statement

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit f3e767c4818a91af0f54524ed73dfbbafa9914db
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Sat Apr 30 12:10:26 2016 -0600

    TS-4401 Cleanup of the overridable switch statement
    
    This does two things:
    
    1) It fixes a couple of places where the type is set to
    MgmtInt, when in reality they are MgmtByte's (and vice
    versa).
    
    2) Reorder the case statements, to be inline with the
    cardinality of the enum type.
    
    (cherry picked from commit 1f71d177d8d33774c14c907f77317ecfabd23f36)
---
 proxy/InkAPI.cc | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index bbcdcdd..5b8375b 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7648,9 +7648,6 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
   case TS_CONFIG_HTTP_KEEP_ALIVE_POST_OUT:
     ret = &overridableHttpConfig->keep_alive_post_out;
     break;
-  case TS_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE:
-    ret = &overridableHttpConfig->auth_server_session_private;
-    break;
   case TS_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH:
     ret = &overridableHttpConfig->server_session_sharing_match;
     break;
@@ -7904,12 +7901,6 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
   case TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS:
     ret = &overridableHttpConfig->proxy_response_hsts_include_subdomains;
     break;
-  case TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT:
-    ret = &overridableHttpConfig->websocket_active_timeout;
-    break;
-  case TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT:
-    ret = &overridableHttpConfig->websocket_inactive_timeout;
-    break;
   case TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME:
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->cache_open_read_retry_time;
@@ -7918,21 +7909,9 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->max_cache_open_read_retries;
     break;
-  case TS_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES:
-    typ = OVERRIDABLE_TYPE_INT;
-    ret = &overridableHttpConfig->max_cache_open_write_retries;
-    break;
-  case TS_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION:
-    typ = OVERRIDABLE_TYPE_INT;
-    ret = &overridableHttpConfig->cache_open_write_fail_action;
-    break;
   case TS_CONFIG_HTTP_CACHE_RANGE_WRITE:
     ret = &overridableHttpConfig->cache_range_write;
     break;
-  case TS_CONFIG_HTTP_CACHE_GENERATION:
-    typ = OVERRIDABLE_TYPE_INT;
-    ret = &overridableHttpConfig->cache_generation_number;
-    break;
   case TS_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED:
     ret = &overridableHttpConfig->post_check_content_length_enabled;
     break;
@@ -7940,24 +7919,37 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
     typ = OVERRIDABLE_TYPE_STRING;
     ret = &overridableHttpConfig->global_user_agent_header;
     break;
+  case TS_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE:
+    ret = &overridableHttpConfig->auth_server_session_private;
+    break;
   case TS_CONFIG_HTTP_SLOW_LOG_THRESHOLD:
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->slow_log_threshold;
     break;
+  case TS_CONFIG_HTTP_CACHE_GENERATION:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->cache_generation_number;
+    break;
   case TS_CONFIG_BODY_FACTORY_TEMPLATE_BASE:
     typ = OVERRIDABLE_TYPE_STRING;
     ret = &overridableHttpConfig->body_factory_template_base;
     break;
-  case TS_CONFIG_HTTP_ENABLE_REDIRECTION:
+  case TS_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION:
     typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->cache_open_write_fail_action;
+    break;
+  case TS_CONFIG_HTTP_ENABLE_REDIRECTION:
     ret = &overridableHttpConfig->redirection_enabled;
     break;
   case TS_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS:
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->number_of_redirections;
     break;
-  case TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY:
+  case TS_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES:
     typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->max_cache_open_write_retries;
+    break;
+  case TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY:
     ret = &overridableHttpConfig->redirect_use_orig_cache_key;
     break;
   case TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT:
@@ -7968,6 +7960,14 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->origin_max_connections_queue;
     break;
+  case TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->websocket_inactive_timeout;
+    break;
+  case TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->websocket_active_timeout;
+    break;
   // This helps avoiding compiler warnings, yet detect unhandled enum members.
   case TS_CONFIG_NULL:
   case TS_CONFIG_LAST_ENTRY:

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 03/28: TS-4235 Mark the fuzz configurations deprecated

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 1fd3de829d1d19c0050610f8f083b5a0556606bb
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Mon May 2 14:00:10 2016 -0600

    TS-4235 Mark the fuzz configurations deprecated
    
    (cherry picked from commit 0da82e1661a1c9f35facca84d4091e6e133a43ab)
---
 doc/admin-guide/configuration/cache-basics.en.rst |  4 ++++
 doc/admin-guide/files/records.config.en.rst       | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git a/doc/admin-guide/configuration/cache-basics.en.rst b/doc/admin-guide/configuration/cache-basics.en.rst
index aff3770..96ea78a 100644
--- a/doc/admin-guide/configuration/cache-basics.en.rst
+++ b/doc/admin-guide/configuration/cache-basics.en.rst
@@ -800,6 +800,10 @@ of the object is completed::
 Fuzzy Revalidation
 ------------------
 
+.. note::
+
+    These options are deprecated as of v6.2.0.
+
 Traffic Server can be set to attempt to revalidate an object before it becomes
 stale in cache. :file:`records.config` contains the settings::
 
diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index b5bc60a..bdedc3d 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1859,6 +1859,7 @@ Heuristic Expiration
    higher than the value in this variable.
 
 .. ts:cv:: CONFIG proxy.config.http.cache.fuzz.time INT 240
+   :deprecated:
    :reloadable:
    :overridable:
 
@@ -1867,6 +1868,7 @@ Heuristic Expiration
    section on :ref:`fuzzy-revalidation` for more details.
 
 .. ts:cv:: CONFIG proxy.config.http.cache.fuzz.probability FLOAT 0.005
+   :deprecated:
    :reloadable:
    :overridable:
 
@@ -1874,6 +1876,7 @@ Heuristic Expiration
    specified in :ts:cv:`proxy.config.http.cache.fuzz.time`.
 
 .. ts:cv:: CONFIG proxy.config.http.cache.fuzz.min_time INT 0
+   :deprecated:
    :reloadable:
    :overridable:
 
@@ -1887,6 +1890,14 @@ Heuristic Expiration
    the window start becomes more likely. By default this setting is not enabled,
    but should be enabled any time you have objects with small TTLs.
 
+.. note::
+
+    These fuzzing options are marked as deprecated as of v6.2.0, and will be
+    removed for v7.0.0. Instead, we recommend looking at the new
+    :ts:cv:`proxy-config-http-cache-open-write-fail-action` configuration and
+    the features around thundering heard avoidance (see
+    :ref:`cache-basics` for details).
+
 Dynamic Content & Content Negotiation
 =====================================
 

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 08/28: TS-4387: When calling TSContSchedule()/TSContScheduleEvery(), the passed in parameter TSCont have to have MUTEX; otherwise if we call TSContSchedule()/TSContScheduleEvery() more than once using same TSCont, only the first call will take effect; all the following schedule are ignored due to MUTEX issue.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit eacaaadcdba946f25deef6759a2746e45f363525
Author: Shen Zhang <se...@linkedin.com>
AuthorDate: Wed May 4 00:46:21 2016 -0700

    TS-4387: When calling TSContSchedule()/TSContScheduleEvery(), the passed
    in parameter TSCont have to have MUTEX; otherwise if we call
    TSContSchedule()/TSContScheduleEvery() more than once using same TSCont,
    only the first call will take effect; all the following schedule are
    ignored due to MUTEX issue.
    
    This closes #603
    
    (cherry picked from commit f96c1f505564280b3f12a98c3ae7abc33b73b168)
---
 proxy/InkAPI.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 5ec1466..f32f7d5 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -4229,6 +4229,8 @@ TSContSchedule(TSCont contp, ink_hrtime timeout, TSThreadPool tp)
 {
   sdk_assert(sdk_sanity_check_iocore_structure(contp) == TS_SUCCESS);
 
+  FORCE_PLUGIN_SCOPED_MUTEX(contp);
+
   INKContInternal *i = (INKContInternal *)contp;
   TSAction action;
 
@@ -4281,6 +4283,8 @@ TSContScheduleEvery(TSCont contp, ink_hrtime every, TSThreadPool tp)
 {
   sdk_assert(sdk_sanity_check_iocore_structure(contp) == TS_SUCCESS);
 
+  FORCE_PLUGIN_SCOPED_MUTEX(contp);
+
   INKContInternal *i = (INKContInternal *)contp;
   TSAction action;
 

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 20/28: TS-4315: Mistype Conditional ? : Operator

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit d2ce39ce2815a31350e98769544b68e544d05cb2
Author: kreats <zh...@gmail.com>
AuthorDate: Sun May 8 14:32:07 2016 -0700

    TS-4315: Mistype Conditional ? : Operator
    
    (cherry picked from commit 05888a40b0962f2e150eabb90feff7d65c5914ab)
---
 iocore/eventsystem/I_Action.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/iocore/eventsystem/I_Action.h b/iocore/eventsystem/I_Action.h
index 6ee2eaa..38fd549 100644
--- a/iocore/eventsystem/I_Action.h
+++ b/iocore/eventsystem/I_Action.h
@@ -204,8 +204,6 @@ public:
 
 #define MAKE_ACTION_RESULT(_x) (Action *)(((uintptr_t)((_x << 1) + 1)))
 
-#define ACTION_RESULT(_x) (int)((((uintptr_t)_x) & 1) != 0 ? ((uintptr_t)(_x) >> 1) : (uintptr_t)0)
-
 #define IS_ACTION_RESULT(_x) ((((uintptr_t)_x) & 1) != 0)
 
 #endif /*_Action_h_*/

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 06/28: TS-4046: Better fix for cleaning up the client response for intercept plugins.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 5f940c674b1d1c4680d637da1ad8b81e909ff013
Author: Alan M. Carroll <am...@apache.org>
AuthorDate: Tue Apr 19 10:17:22 2016 -0500

    TS-4046: Better fix for cleaning up the client response for intercept plugins.
    
    (cherry picked from commit 608775e1ceccba64f5dfd75957f4a24276fba755)
---
 proxy/hdrs/HTTP.h          | 7 +++----
 proxy/http/HttpTransact.cc | 3 ++-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/proxy/hdrs/HTTP.h b/proxy/hdrs/HTTP.h
index e457f61..ae20b48 100644
--- a/proxy/hdrs/HTTP.h
+++ b/proxy/hdrs/HTTP.h
@@ -507,7 +507,7 @@ public:
   int valid() const;
 
   void create(HTTPType polarity, HdrHeap *heap = NULL);
-  void destroy();
+  void clear();
   void reset();
   void copy(const HTTPHdr *hdr);
   void copy_shallow(const HTTPHdr *hdr);
@@ -796,13 +796,12 @@ HTTPHdr::create(HTTPType polarity, HdrHeap *heap)
 }
 
 inline void
-HTTPHdr::destroy()
+HTTPHdr::clear()
 {
   if (m_http && m_http->m_polarity == HTTP_TYPE_REQUEST) {
     m_url_cached.clear();
   }
-  // Removing the only pointers to this data therefore it needs to get cleaned up or leak.
-  this->HdrHeapSDKHandle::destroy();
+  this->HdrHeapSDKHandle::clear();
   m_http = NULL;
   m_mime = NULL;
 }
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 1500f0a..9b06ede 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -934,7 +934,8 @@ done:
     HTTP_INCREMENT_DYN_STAT(http_invalid_client_requests_stat);
     TRANSACT_RETURN(SM_ACTION_SEND_ERROR_CACHE_NOOP, NULL);
   } else {
-    s->hdr_info.client_response.destroy(); // anything previously set is invalid from this point forward
+    s->hdr_info.client_response.destroy(); // release the underlying memory.
+    s->hdr_info.client_response.clear(); // clear the pointers.
     DebugTxn("http_trans", "END HttpTransact::EndRemapRequest");
 
     if (s->is_upgrade_request && s->post_remap_upgrade_return_point) {

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 25/28: TS-4420: Sync config changes before running tests.

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 676f30d73521f3e0cd288b0e33e2e3a9a79eb168
Author: James Peach <jp...@apache.org>
AuthorDate: Tue May 10 15:42:18 2016 -0700

    TS-4420: Sync config changes before running tests.
    
    (cherry picked from commit fdc75437440c2e903a8a212a1591632eade289f3)
---
 proxy/InkAPITest.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index d404d17..6aa5e07 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -5906,9 +5906,10 @@ struct ParentTest {
     if (!this->parent_proxy_routing_enable) {
       rprintf(this->regtest, "enabling proxy.config.http.parent_proxy_routing_enable\n");
       RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
-    }
 
-    RecSetRecordInt("proxy.config.http.parent_proxy_routing_enable", 1, REC_SOURCE_EXPLICIT);
+      // Force the config change to sync.
+      RecExecConfigUpdateCbs(REC_UPDATE_REQUIRED);
+    }
   }
 
   ~ParentTest()

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 14/28: TS-4369: Add VIA_ERROR_MOVED_TEMPORARILY. This closes #586

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit f6707d486e63d4a6dca28a5f5e1558c730d3c9b2
Author: Brian Geffon <br...@apache.org>
AuthorDate: Wed Apr 20 21:26:59 2016 -0700

    TS-4369: Add VIA_ERROR_MOVED_TEMPORARILY. This closes #586
    
    (cherry picked from commit af7832d229d6746edfd5010ab013fce0bbf20c21)
---
 cmd/traffic_via/traffic_via.cc | 1 +
 doc/appendices/faq.en.rst      | 1 +
 proxy/http/HttpTransact.cc     | 2 +-
 proxy/http/HttpTransact.h      | 1 +
 proxy/http/README.via          | 3 +++
 5 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/cmd/traffic_via/traffic_via.cc b/cmd/traffic_via/traffic_via.cc
index 82b9ad3..c816f5a 100644
--- a/cmd/traffic_via/traffic_via.cc
+++ b/cmd/traffic_via/traffic_via.cc
@@ -176,6 +176,7 @@ standardViaLookup(char flag)
     viaTable->viaData[(unsigned char)'N'] = "no error";
     viaTable->viaData[(unsigned char)'F'] = "request forbidden";
     viaTable->viaData[(unsigned char)'R'] = "cache read error";
+    viaTable->viaData[(unsigned char)'M'] = "moved temporarily";
     viaTable->viaData[(unsigned char)' '] = "unknown";
     break;
   default:
diff --git a/doc/appendices/faq.en.rst b/doc/appendices/faq.en.rst
index d8646c5..4951403 100644
--- a/doc/appendices/faq.en.rst
+++ b/doc/appendices/faq.en.rst
@@ -229,6 +229,7 @@ F     request forbidden
 H     header syntax unacceptable
 N     no error
 R     cache read error
+M     moved temporarily
 S     server related error
 T     connection timed out
 ===== ==========================
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 640082a..541d3d1 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -8135,7 +8135,7 @@ HttpTransact::build_error_response(State *s, HTTPStatus status_code, const char
     SET_VIA_STRING(VIA_ERROR_TYPE, VIA_ERROR_DNS_FAILURE);
     break;
   case HTTP_STATUS_MOVED_TEMPORARILY:
-    SET_VIA_STRING(VIA_ERROR_TYPE, VIA_ERROR_SERVER);
+    SET_VIA_STRING(VIA_ERROR_TYPE, VIA_ERROR_MOVED_TEMPORARILY);
     break;
   case HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED:
     SET_VIA_STRING(VIA_CLIENT_REQUEST, VIA_CLIENT_ERROR);
diff --git a/proxy/http/HttpTransact.h b/proxy/http/HttpTransact.h
index b5b1b27..31f9c58 100644
--- a/proxy/http/HttpTransact.h
+++ b/proxy/http/HttpTransact.h
@@ -183,6 +183,7 @@ enum ViaString_t {
   VIA_ERROR_SERVER = 'S',
   VIA_ERROR_TIMEOUT = 'T',
   VIA_ERROR_CACHE_READ = 'R',
+  VIA_ERROR_MOVED_TEMPORARILY = 'M',
   //
   // Now the detailed stuff
   //
diff --git a/proxy/http/README.via b/proxy/http/README.via
index c5c954f..04c4a81 100644
--- a/proxy/http/README.via
+++ b/proxy/http/README.via
@@ -12,6 +12,7 @@
          A    in cache, not acceptable
          S    in cache, stale
          H    in cache, fresh
+         R    in cache, fresh RAM hit
      
       server stuff
          E    error in response
@@ -35,6 +36,8 @@
          D    dns failure
          F    request forbidden
          H    header syntax unacceptable
+         M    moved temporarily
+         R    cache read error
          S    server related error
          T    connection timed out
      

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 17/28: TS-4401 Override proxy.config.http.uncacheable_requests_bypass_parent

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 908a85a81e1ea061e4cb82c8ae51ea4b2cd66cf7
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Sat Apr 30 12:58:58 2016 -0600

    TS-4401 Override proxy.config.http.uncacheable_requests_bypass_parent
    
    (cherry picked from commit ea4f7e2c0a346e7a34a93816fcbfb45357a641f2)
    
     Conflicts:
    	proxy/http/HttpConfig.h
---
 doc/admin-guide/files/records.config.en.rst      | 2 ++
 lib/ts/apidefs.h.in                              | 1 +
 plugins/experimental/ts_lua/ts_lua_http_config.c | 2 ++
 proxy/InkAPI.cc                                  | 5 +++++
 proxy/InkAPITest.cc                              | 1 +
 proxy/http/HttpConfig.cc                         | 4 ++--
 proxy/http/HttpConfig.h                          | 3 ++-
 proxy/http/HttpTransact.cc                       | 2 +-
 8 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index 1fa0d3e..1bb1bd0 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1280,6 +1280,8 @@ Origin Server Connect Attempts
    because the origin server was too slow in sending the response header.
 
 .. ts:cv:: CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 1
+   :reloadable:
+   :overridable:
 
    When enabled (1), Traffic Server bypasses the parent proxy for a request that is not cacheable.
 
diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index b876e99..d4b94db 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -697,6 +697,7 @@ typedef enum {
   TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE,
   TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
   TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
+  TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
   TS_CONFIG_LAST_ENTRY
 } TSOverridableConfigKey;
 
diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 952af54..aca39ce 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -116,6 +116,7 @@ typedef enum {
   TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE = TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE,
   TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT = TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT,
   TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
+  TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT = TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
   TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
 } TSLuaOverridableConfigKey;
 
@@ -224,6 +225,7 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
 };
 
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 5b8375b..3336449 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7968,6 +7968,9 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->websocket_active_timeout;
     break;
+  case TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT:
+    ret = &overridableHttpConfig->uncacheable_requests_bypass_parent;
+    break;
   // This helps avoiding compiler warnings, yet detect unhandled enum members.
   case TS_CONFIG_NULL:
   case TS_CONFIG_LAST_ENTRY:
@@ -8591,6 +8594,8 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
     case 't':
       if (!strncmp(name, "proxy.config.http.keep_alive_no_activity_timeout_out", length))
         cnf = TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT;
+      else if (!strncmp(name, "proxy.config.http.uncacheable_requests_bypass_parent", length))
+        cnf = TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT;
       break;
     }
     break;
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 4445e47..d3b5716 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7353,6 +7353,7 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
   "proxy.config.http.origin_max_connections_queue",
   "proxy.config.websocket.no_activity_timeout",
   "proxy.config.websocket.active_timeout",
+  "proxy.config.http.uncacheable_requests_bypass_parent",
 };
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 0891c95..c599a9e 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -891,7 +891,7 @@ HttpConfig::startup()
   // Wank me.
   HttpEstablishStaticConfigByte(c.disable_ssl_parenting, "proxy.local.http.parent_proxy.disable_connect_tunneling");
   HttpEstablishStaticConfigByte(c.no_dns_forward_to_parent, "proxy.config.http.no_dns_just_forward_to_parent");
-  HttpEstablishStaticConfigByte(c.uncacheable_requests_bypass_parent, "proxy.config.http.uncacheable_requests_bypass_parent");
+  HttpEstablishStaticConfigByte(c.oride.uncacheable_requests_bypass_parent, "proxy.config.http.uncacheable_requests_bypass_parent");
   HttpEstablishStaticConfigByte(c.oride.doc_in_cache_skip_dns, "proxy.config.http.doc_in_cache_skip_dns");
 
   HttpEstablishStaticConfigByte(c.no_origin_server_dns, "proxy.config.http.no_origin_server_dns");
@@ -1143,7 +1143,7 @@ HttpConfig::reconfigure()
   params->proxy_hostname = ats_strdup(m_master.proxy_hostname);
   params->proxy_hostname_len = (params->proxy_hostname) ? strlen(params->proxy_hostname) : 0;
   params->no_dns_forward_to_parent = INT_TO_BOOL(m_master.no_dns_forward_to_parent);
-  params->uncacheable_requests_bypass_parent = INT_TO_BOOL(m_master.uncacheable_requests_bypass_parent);
+  params->oride.uncacheable_requests_bypass_parent = INT_TO_BOOL(m_master.oride.uncacheable_requests_bypass_parent);
   params->no_origin_server_dns = INT_TO_BOOL(m_master.no_origin_server_dns);
   params->use_client_target_addr = m_master.use_client_target_addr;
   params->use_client_source_port = INT_TO_BOOL(m_master.use_client_source_port);
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index 58de48f..81d1efb 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -371,6 +371,7 @@ struct OverridableHttpConfigParams {
       server_session_sharing_match(TS_SERVER_SESSION_SHARING_MATCH_BOTH),
       auth_server_session_private(1),
       fwd_proxy_auth_to_parent(0),
+      uncacheable_requests_bypass_parent(1),
       insert_age_in_response(1),
       anonymize_remove_from(0),
       anonymize_remove_referer(0),
@@ -489,6 +490,7 @@ struct OverridableHttpConfigParams {
   //  MgmtByte share_server_sessions;
   MgmtByte auth_server_session_private;
   MgmtByte fwd_proxy_auth_to_parent;
+  MgmtByte uncacheable_requests_bypass_parent;
 
   MgmtByte insert_age_in_response;
 
@@ -714,7 +716,6 @@ public:
 
   MgmtByte enable_url_expandomatic;
   MgmtByte no_dns_forward_to_parent;
-  MgmtByte uncacheable_requests_bypass_parent;
   MgmtByte no_origin_server_dns;
   MgmtByte use_client_target_addr;
   MgmtByte use_client_source_port;
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 541d3d1..6de9c8d 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -257,7 +257,7 @@ find_server_and_update_current_info(HttpTransact::State *s)
       DebugTxn("http_trans", "request not cacheable, so bypass parent");
       s->parent_result.result = PARENT_DIRECT;
     }
-  } else if (s->http_config_param->uncacheable_requests_bypass_parent && s->http_config_param->no_dns_forward_to_parent == 0 &&
+  } else if (s->txn_conf->uncacheable_requests_bypass_parent && s->http_config_param->no_dns_forward_to_parent == 0 &&
              !HttpTransact::is_request_cache_lookupable(s)) {
     // request not lookupable and cacheable, so bypass parent if the parent is not an origin server.
     // Note that the configuration of the proxy as well as the request

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 22/28: TS-4020 Use cache-key URL for some plugins

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit fcc6f4cdaeb8065ff0bbcbfa10e97fcc1db3d05c
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Thu Apr 28 16:09:48 2016 -0600

    TS-4020 Use cache-key URL for some plugins
    
    cache_promote and background_fetch both use the pristine URL
    as the hash for various internal lookup features. This works
    well, except when it doesn't. For example, when mixed with
    using the cachekey.so plugin.
    
    This changes the behavior to use the cachekey URL. This is not
    awesomely efficient at this point, but a future fix will use a
    new API that allows introspection into the actual cache key used
    by the ATS core instead.
    
    (cherry picked from commit 3511a6630d00029d60e8c1728d7f06decabc0362)
---
 .../background_fetch/background_fetch.cc           | 62 +++++++++++++---------
 .../experimental/cache_promote/cache_promote.cc    | 20 ++++++-
 2 files changed, 56 insertions(+), 26 deletions(-)

diff --git a/plugins/experimental/background_fetch/background_fetch.cc b/plugins/experimental/background_fetch/background_fetch.cc
index 013e4d5..b2a4bd5 100644
--- a/plugins/experimental/background_fetch/background_fetch.cc
+++ b/plugins/experimental/background_fetch/background_fetch.cc
@@ -219,9 +219,11 @@ private:
 bool
 BgFetchData::initialize(TSMBuffer request, TSMLoc req_hdr, TSHttpTxn txnp)
 {
+  struct sockaddr const *ip = TSHttpTxnClientAddrGet(txnp);
+  bool ret = false;
+
   TSAssert(TS_NULL_MLOC == hdr_loc);
   TSAssert(TS_NULL_MLOC == url_loc);
-  struct sockaddr const *ip = TSHttpTxnClientAddrGet(txnp);
 
   if (ip) {
     if (ip->sa_family == AF_INET) {
@@ -238,39 +240,51 @@ BgFetchData::initialize(TSMBuffer request, TSMLoc req_hdr, TSHttpTxn txnp)
 
   hdr_loc = TSHttpHdrCreate(mbuf);
   if (TS_SUCCESS == TSHttpHdrCopy(mbuf, hdr_loc, request, req_hdr)) {
-    TSMLoc purl;
-    int len;
+    TSMLoc p_url;
 
     // Now copy the pristine request URL into our MBuf
-    if ((TS_SUCCESS == TSHttpTxnPristineUrlGet(txnp, &request, &purl)) &&
-        (TS_SUCCESS == TSUrlClone(mbuf, request, purl, &url_loc))) {
-      char *url = TSUrlStringGet(mbuf, url_loc, &len);
-
-      _url.append(url, len); // Save away the URL for later use when acquiring lock
+    if (TS_SUCCESS == TSHttpTxnPristineUrlGet(txnp, &request, &p_url)) {
+      if (TS_SUCCESS == TSUrlClone(mbuf, request, p_url, &url_loc)) {
+        TSMLoc c_url = TS_NULL_MLOC;
+        int len;
+        char *url = NULL;
+
+        // Get the cache key URL (for now), since this has better lookup behavior when using
+        // e.g. the cachekey plugin.
+        if (TS_SUCCESS == TSUrlCreate(request, &c_url)) {
+          if (TS_SUCCESS == TSHttpTxnCacheLookupUrlGet(txnp, request, c_url)) {
+            url = TSUrlStringGet(request, c_url, &len);
+            TSHandleMLocRelease(request, TS_NULL_MLOC, c_url);
+            TSDebug(PLUGIN_NAME, "Cache URL is %.*s", len, url);
+          }
+        }
 
-      TSfree(static_cast<void *>(url));
-      TSHandleMLocRelease(request, TS_NULL_MLOC, purl);
+        if (url) {
+          _url.assign(url, len); // Save away the cache URL for later use when acquiring lock
+          TSfree(static_cast<void *>(url));
 
-      if (TS_SUCCESS == TSHttpHdrUrlSet(mbuf, hdr_loc, url_loc)) {
-        // Make sure we have the correct Host: header for this request.
-        const char *hostp = TSUrlHostGet(mbuf, url_loc, &len);
+          if (TS_SUCCESS == TSHttpHdrUrlSet(mbuf, hdr_loc, url_loc)) {
+            // Make sure we have the correct Host: header for this request.
+            const char *hostp = TSUrlHostGet(mbuf, url_loc, &len);
 
-        if (set_header(mbuf, hdr_loc, TS_MIME_FIELD_HOST, TS_MIME_LEN_HOST, hostp, len)) {
-          TSDebug(PLUGIN_NAME, "Set header Host: %.*s", len, hostp);
-        }
+            if (set_header(mbuf, hdr_loc, TS_MIME_FIELD_HOST, TS_MIME_LEN_HOST, hostp, len)) {
+              TSDebug(PLUGIN_NAME, "Set header Host: %.*s", len, hostp);
+            }
 
-        // Next, remove any Range: headers from our request.
-        if (remove_header(mbuf, hdr_loc, TS_MIME_FIELD_RANGE, TS_MIME_LEN_RANGE) > 0) {
-          TSDebug(PLUGIN_NAME, "Removed the Range: header from request");
+            // Next, remove any Range: headers from our request.
+            if (remove_header(mbuf, hdr_loc, TS_MIME_FIELD_RANGE, TS_MIME_LEN_RANGE) > 0) {
+              TSDebug(PLUGIN_NAME, "Removed the Range: header from request");
+            }
+            // Everything went as planned, so we can return true
+            ret = true;
+          }
         }
-
-        return true;
       }
+      TSHandleMLocRelease(request, TS_NULL_MLOC, p_url);
     }
   }
 
-  // Something failed.
-  return false;
+  return ret;
 }
 
 static int cont_bg_fetch(TSCont contp, TSEvent event, void *edata);
@@ -362,7 +376,7 @@ cont_bg_fetch(TSCont contp, TSEvent event, void * /* edata ATS_UNUSED */)
         TSError("[%s] Unknown address family %d", PLUGIN_NAME, sockaddress->sa_family);
         break;
       }
-      TSDebug(PLUGIN_NAME, "Starting bg fetch on: %s", data->getUrl());
+      TSDebug(PLUGIN_NAME, "Starting background fetch, replaying:");
       dump_headers(data->mbuf, data->hdr_loc);
     }
 
diff --git a/plugins/experimental/cache_promote/cache_promote.cc b/plugins/experimental/cache_promote/cache_promote.cc
index 73a409f..ca236b0 100644
--- a/plugins/experimental/cache_promote/cache_promote.cc
+++ b/plugins/experimental/cache_promote/cache_promote.cc
@@ -238,16 +238,32 @@ public:
   {
     LRUHash hash;
     LRUMap::iterator map_it;
+    char *url = NULL;
     int url_len = 0;
-    char *url = TSHttpTxnEffectiveUrlStringGet(txnp, &url_len);
     bool ret = false;
+    TSMBuffer request;
+    TSMLoc req_hdr;
+
+    if (TS_SUCCESS == TSHttpTxnClientReqGet(txnp, &request, &req_hdr)) {
+      TSMLoc c_url = TS_NULL_MLOC;
+
+      // Get the cache key URL (for now), since this has better lookup behavior when using
+      // e.g. the cachekey plugin.
+      if (TS_SUCCESS == TSUrlCreate(request, &c_url)) {
+        if (TS_SUCCESS == TSHttpTxnCacheLookupUrlGet(txnp, request, c_url)) {
+          url = TSUrlStringGet(request, c_url, &url_len);
+          TSHandleMLocRelease(request, TS_NULL_MLOC, c_url);
+        }
+      }
+      TSHandleMLocRelease(request, TS_NULL_MLOC, req_hdr);
+    }
 
     // Generally shouldn't happen ...
     if (!url) {
       return false;
     }
 
-    TSDebug(PLUGIN_NAME, "LRUPolicy::doPromote(%.*s ...)", url_len > 30 ? 30 : url_len, url);
+    TSDebug(PLUGIN_NAME, "LRUPolicy::doPromote(%.*s%s)", url_len > 100 ? 100 : url_len, url, url_len > 100 ? "..." : "");
     hash.init(url, url_len);
     TSfree(url);
 

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 27/28: TS-4427 Fix unit tests

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 044f5e4eb97a29a2052bcb71f73cb4240707dfa8
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Mon May 9 08:28:36 2016 -0600

    TS-4427 Fix unit tests
    
    (cherry picked from commit ff1acce9b782e004dd91efc7ba95606002abd533)
---
 proxy/tests/logstats.json    | 4 ++++
 proxy/tests/logstats.summary | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/proxy/tests/logstats.json b/proxy/tests/logstats.json
index 907c2dd..7b20d17 100644
--- a/proxy/tests/logstats.json
+++ b/proxy/tests/logstats.json
@@ -1,5 +1,6 @@
 { "total": {
     "hit.direct" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
+    "hit.ram" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.ims" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.refresh" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.other" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
@@ -109,6 +110,7 @@
     "content.none" : { "req": "1", "req_pct": "1.49", "bytes": "0", "bytes_pct": "0.00" },
     "content.other" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.direct.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
+    "hit.ram.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.ims.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.refresh.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.other.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
@@ -121,6 +123,7 @@
   },
   "imgur.com": {
     "hit.direct" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
+    "hit.ram" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.ims" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.refresh" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.other" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
@@ -230,6 +233,7 @@
     "content.none" : { "req": "1", "req_pct": "1.49", "bytes": "0", "bytes_pct": "0.00" },
     "content.other" : { "req": "0", "req_pct": "0.00", "bytes": "0", "bytes_pct": "0.00" },
     "hit.direct.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
+    "hit.ram.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.ims.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.refresh.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
     "hit.other.latency" : { "min": "-1", "max": "0", "avg": "0.00", "dev": "0.00" },
diff --git a/proxy/tests/logstats.summary b/proxy/tests/logstats.summary
index f27077c..20e1460 100644
--- a/proxy/tests/logstats.summary
+++ b/proxy/tests/logstats.summary
@@ -3,6 +3,7 @@
 Request Result                         Count    Percent       Bytes    Percent
 ------------------------------------------------------------------------------
 Cache hit                                  0      0.00%      0.00KB      0.00%
+Cache hit RAM                              0      0.00%      0.00KB      0.00%
 Cache hit IMS                              0      0.00%      0.00KB      0.00%
 Cache hit refresh                          0      0.00%      0.00KB      0.00%
 Cache hit other                            0      0.00%      0.00KB      0.00%
@@ -148,6 +149,7 @@ other                                      0      0.00%      0.00KB      0.00%
 Elapsed time stats          Min          Max              Avg    Std Deviation
 ------------------------------------------------------------------------------
 Cache hit                     0            0             0.00             0.00
+Cache hit RAM                 0            0             0.00             0.00
 Cache hit IMS                 0            0             0.00             0.00
 Cache hit refresh             0            0             0.00             0.00
 Cache hit other               0            0             0.00             0.00

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.