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 48e869374b24c8c50e56a740f5bedad7aa5c1d80 Author: Susan Hinrichs <[email protected]> AuthorDate: Thu May 26 02:09:48 2016 +0000 TS-4461: SSL Client Connections not closed. (cherry picked from commit 456ade9ab35787d39d3414149a0ee04f44008268) --- iocore/net/P_UnixNetVConnection.h | 6 +++++- proxy/http/Http1ClientSession.cc | 13 +++++++------ proxy/http/Http1ClientTransaction.cc | 2 +- proxy/http/HttpSM.cc | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/iocore/net/P_UnixNetVConnection.h b/iocore/net/P_UnixNetVConnection.h index 9b10cbf..bef0191 100644 --- a/iocore/net/P_UnixNetVConnection.h +++ b/iocore/net/P_UnixNetVConnection.h @@ -372,7 +372,11 @@ UnixNetVConnection::set_inactivity_timeout(ink_hrtime timeout) } else inactivity_timeout = 0; #else - next_inactivity_timeout_at = Thread::get_hrtime() + timeout; + if (timeout) { + next_inactivity_timeout_at = Thread::get_hrtime() + timeout; + } else { + next_inactivity_timeout_at = 0; + } #endif } diff --git a/proxy/http/Http1ClientSession.cc b/proxy/http/Http1ClientSession.cc index 508b593..e31b953 100644 --- a/proxy/http/Http1ClientSession.cc +++ b/proxy/http/Http1ClientSession.cc @@ -266,7 +266,7 @@ Http1ClientSession::do_io_close(int alerrno) // 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(trans.get_sm()->t_state.txn_conf->keep_alive_no_activity_timeout_out)); + client_vc->set_active_timeout(HRTIME_SECONDS(trans.get_sm()->t_state.txn_conf->keep_alive_no_activity_timeout_in)); } // [bug 2610799] Drain any data read. @@ -427,9 +427,10 @@ Http1ClientSession::release(ProxyClientTransaction *trans) ka_vio = this->do_io_read(this, INT64_MAX, read_buffer); ink_assert(slave_ka_vio != ka_vio); - // Y!? - // client_vc->add_to_keep_alive_lru(); - client_vc->cancel_active_timeout(); + if (client_vc) { + client_vc->cancel_active_timeout(); + client_vc->add_to_keep_alive_queue(); + } trans->destroy(); } } @@ -451,8 +452,8 @@ Http1ClientSession::new_transaction() trans.set_parent(this); transact_count++; - // Y!? - // client_vc->remove_from_keep_alive_lru(); + + client_vc->add_to_active_queue(); trans.new_transaction(); } diff --git a/proxy/http/Http1ClientTransaction.cc b/proxy/http/Http1ClientTransaction.cc index 22fb1d5..074d283 100644 --- a/proxy/http/Http1ClientTransaction.cc +++ b/proxy/http/Http1ClientTransaction.cc @@ -31,7 +31,7 @@ Http1ClientTransaction::release(IOBufferReader *r) // Must set this inactivity count here rather than in the session because the state machine // is not availble then MgmtInt ka_in = current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_in; - get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(ka_in)); + set_inactivity_timeout(HRTIME_SECONDS(ka_in)); if (m_active) { m_active = false; diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index c8f7cd1..8652597 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -5613,7 +5613,7 @@ HttpSM::do_setup_post_tunnel(HttpVC_t to_vc_type) if (chunked) tunnel.set_producer_chunking_action(p, 0, TCA_PASSTHRU_CHUNKED_CONTENT); - ua_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->transaction_no_activity_timeout_in)); + ua_session->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->transaction_no_activity_timeout_in)); server_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->transaction_no_activity_timeout_out)); tunnel.tunnel_run(p); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
