You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2011/08/03 18:59:38 UTC

svn commit: r1153581 - in /trafficserver/traffic/trunk/proxy: InkAPI.cc InkAPITest.cc api/ts/ts.h.in http/HttpClientSession.cc http/HttpConfig.cc http/HttpConfig.h http/HttpSessionManager.cc

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 {