Author: zwoop
Date: Wed Aug 3 16:59:37 2011
New Revision: 1153581
URL: http://svn.apache.org/viewvc?rev=1153581&view=rev
Log:
TS-863 I want to be able to set
proxy.config.http.keep_alive_no_activity_timeout_out per-transaction.
Author: William Bardwell
Review: Leif
Modified:
trafficserver/traffic/trunk/proxy/InkAPI.cc
trafficserver/traffic/trunk/proxy/InkAPITest.cc
trafficserver/traffic/trunk/proxy/api/ts/ts.h.in
trafficserver/traffic/trunk/proxy/http/HttpClientSession.cc
trafficserver/traffic/trunk/proxy/http/HttpConfig.cc
trafficserver/traffic/trunk/proxy/http/HttpConfig.h
trafficserver/traffic/trunk/proxy/http/HttpSessionManager.cc
Modified: trafficserver/traffic/trunk/proxy/InkAPI.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkAPI.cc?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkAPI.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkAPI.cc Wed Aug 3 16:59:37 2011
@@ -7342,6 +7342,9 @@ _conf_to_memberp(TSOverridableConfigKey
case TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN:
ret = &sm->t_state.txn_conf->keep_alive_no_activity_timeout_in;
break;
+ case TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT:
+ ret = &sm->t_state.txn_conf->keep_alive_no_activity_timeout_out;
+ break;
case TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN:
ret = &sm->t_state.txn_conf->transaction_no_activity_timeout_in;
break;
@@ -7812,6 +7815,10 @@ TSHttpTxnConfigFind(const char* name, in
if (!strncmp(name,
"proxy.config.http.transaction_no_activity_timeout_in", length))
cnf = TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN;
break;
+ 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;
+ break;
}
break;
Modified: trafficserver/traffic/trunk/proxy/InkAPITest.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkAPITest.cc?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkAPITest.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkAPITest.cc Wed Aug 3 16:59:37 2011
@@ -7537,6 +7537,7 @@ const char *SDK_Overridable_Configs[] =
"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",
Modified: trafficserver/traffic/trunk/proxy/api/ts/ts.h.in
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/api/ts/ts.h.in?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/api/ts/ts.h.in (original)
+++ trafficserver/traffic/trunk/proxy/api/ts/ts.h.in Wed Aug 3 16:59:37 2011
@@ -524,6 +524,7 @@ extern "C"
TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME,
TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE,
TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN,
+ TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT,
TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN,
TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT,
TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT,
Modified: trafficserver/traffic/trunk/proxy/http/HttpClientSession.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http/HttpClientSession.cc?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http/HttpClientSession.cc (original)
+++ trafficserver/traffic/trunk/proxy/http/HttpClientSession.cc Wed Aug 3
16:59:37 2011
@@ -304,7 +304,7 @@ HttpClientSession::do_io_close(int alerr
// Set the active timeout to the same as the inactive time so
// that this connection does not hang around forever if
// the ua hasn't closed
-
client_vc->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));
+
client_vc->set_active_timeout(HRTIME_SECONDS(current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_out));
} else {
read_state = HCS_CLOSED;
client_vc->do_io_close(alerrno);
@@ -553,9 +553,9 @@ HttpClientSession::attach_server_session
if (transaction_done) {
ssession->get_netvc()->
-
set_inactivity_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));
+
set_inactivity_timeout(HRTIME_SECONDS(current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_out));
ssession->get_netvc()->
-
set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));
+
set_active_timeout(HRTIME_SECONDS(current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_out));
} else {
// we are serving from the cache - this could take a while.
ssession->get_netvc()->cancel_inactivity_timeout();
Modified: trafficserver/traffic/trunk/proxy/http/HttpConfig.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http/HttpConfig.cc?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http/HttpConfig.cc (original)
+++ trafficserver/traffic/trunk/proxy/http/HttpConfig.cc Wed Aug 3 16:59:37
2011
@@ -1190,7 +1190,7 @@ HttpConfig::startup()
HttpEstablishStaticConfigLongLong(c.oride.keep_alive_no_activity_timeout_in,
"proxy.config.http.keep_alive_no_activity_timeout_in");
- HttpEstablishStaticConfigLongLong(c.keep_alive_no_activity_timeout_out,
+ HttpEstablishStaticConfigLongLong(c.oride.keep_alive_no_activity_timeout_out,
"proxy.config.http.keep_alive_no_activity_timeout_out");
HttpEstablishStaticConfigLongLong(c.oride.transaction_no_activity_timeout_in,
"proxy.config.http.transaction_no_activity_timeout_in");
@@ -1465,7 +1465,7 @@ HttpConfig::reconfigure()
params->oride.keep_alive_post_out =
INT_TO_BOOL(m_master.oride.keep_alive_post_out);
params->oride.keep_alive_no_activity_timeout_in =
m_master.oride.keep_alive_no_activity_timeout_in;
- params->keep_alive_no_activity_timeout_out =
m_master.keep_alive_no_activity_timeout_out;
+ 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;
Modified: trafficserver/traffic/trunk/proxy/http/HttpConfig.h
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http/HttpConfig.h?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http/HttpConfig.h (original)
+++ trafficserver/traffic/trunk/proxy/http/HttpConfig.h Wed Aug 3 16:59:37 2011
@@ -414,6 +414,7 @@ struct OverridableHttpConfigParams {
cache_heuristic_min_lifetime(0), cache_heuristic_max_lifetime(0),
cache_guaranteed_min_lifetime(0), cache_guaranteed_max_lifetime(0),
cache_max_stale_age(0),
keep_alive_no_activity_timeout_in(0),
+ keep_alive_no_activity_timeout_out(0),
transaction_no_activity_timeout_in(0),
transaction_no_activity_timeout_out(0),
transaction_active_timeout_out(0),
origin_max_connections(0),
@@ -509,6 +510,7 @@ struct OverridableHttpConfigParams {
// connection variables. timeouts are in seconds //
///////////////////////////////////////////////////
MgmtInt keep_alive_no_activity_timeout_in;
+ MgmtInt keep_alive_no_activity_timeout_out;
MgmtInt transaction_no_activity_timeout_in;
MgmtInt transaction_no_activity_timeout_out;
MgmtInt transaction_active_timeout_out;
@@ -637,7 +639,6 @@ public:
MgmtInt origin_server_pipeline;
MgmtInt user_agent_pipeline;
MgmtInt share_server_sessions;
- MgmtInt keep_alive_no_activity_timeout_out;
MgmtInt transaction_active_timeout_in;
MgmtInt accept_no_activity_timeout;
MgmtInt background_fill_active_timeout;
@@ -924,7 +925,6 @@ HttpConfigParams::HttpConfigParams()
origin_server_pipeline(0),
user_agent_pipeline(0),
share_server_sessions(0),
- keep_alive_no_activity_timeout_out(0),
transaction_active_timeout_in(0),
accept_no_activity_timeout(0),
background_fill_active_timeout(0),
Modified: trafficserver/traffic/trunk/proxy/http/HttpSessionManager.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http/HttpSessionManager.cc?rev=1153581&r1=1153580&r2=1153581&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http/HttpSessionManager.cc (original)
+++ trafficserver/traffic/trunk/proxy/http/HttpSessionManager.cc Wed Aug 3
16:59:37 2011
@@ -99,8 +99,8 @@ SessionBucket::session_handler(int event
Debug("http_ss", "[%" PRId64 "] [session_bucket] session received io
notice [%s], "
"reseting timeout to maintain minimum number of connections",
s->con_id,
HttpDebugNames::get_event_name(event));
-
s->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(http_config_params->keep_alive_no_activity_timeout_out));
-
s->get_netvc()->set_active_timeout(HRTIME_SECONDS(http_config_params->keep_alive_no_activity_timeout_out));
+
s->get_netvc()->set_inactivity_timeout(s->get_netvc()->get_inactivity_timeout());
+
s->get_netvc()->set_active_timeout(s->get_netvc()->get_active_timeout());
found = true;
break;
}
@@ -316,8 +316,8 @@ HttpSessionManager::release_session(Http
to_release->do_io_write(bucket, 0, NULL);
// we probably don't need the active timeout set, but will leave it for now
-
to_release->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));
-
to_release->get_netvc()->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));
+
to_release->get_netvc()->set_inactivity_timeout(to_release->get_netvc()->get_inactivity_timeout());
+
to_release->get_netvc()->set_active_timeout(to_release->get_netvc()->get_active_timeout());
Debug("http_ss", "[%" PRId64 "] [release session] " "session placed into
shared pool", to_release->con_id);
return HSM_DONE;
} else {