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>.