Updated Branches: refs/heads/master a32bc3a83 -> 30fcc2b2e
TS-2197 use HttpSM::main_handler to handle the client request stuff ranther than directly call the HttpSM::state_read_client_request. reenable the client_vc even if the ua_buffer_reader is not empty, or else we may not perceive client_vc`s aborted. Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/30fcc2b2 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/30fcc2b2 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/30fcc2b2 Branch: refs/heads/master Commit: 30fcc2b2e698831d1a9e4db1474d8cfc202818a3 Parents: a32bc3a Author: weijin <[email protected]> Authored: Mon Oct 14 10:16:24 2013 +0800 Committer: weijin <[email protected]> Committed: Mon Oct 14 10:31:48 2013 +0800 ---------------------------------------------------------------------- CHANGES | 2 ++ proxy/http/HttpSM.cc | 15 +++------------ 2 files changed, 5 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/30fcc2b2/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 10267ff..7376d7e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache Traffic Server 4.1.0 + *) [TS-2197] Use HttpSM::main_handler to handle the client request stuff. + *) [TS-2254] On ARM arch, ink_atomic_increment returns wrong value. Author: Yu Qing. http://git-wip-us.apache.org/repos/asf/trafficserver/blob/30fcc2b2/proxy/http/HttpSM.cc ---------------------------------------------------------------------- diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index beddcca..b04c2c2 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -647,20 +647,11 @@ HttpSM::setup_client_read_request_header() { ink_assert(ua_entry->vc_handler == &HttpSM::state_read_client_request_header); + ua_entry->read_vio = ua_session->do_io_read(this, INT64_MAX, ua_buffer_reader->mbuf); // The header may already be in the buffer if this // a request from a keep-alive connection - if (ua_buffer_reader->read_avail() > 0) { - int r = state_read_client_request_header(VC_EVENT_READ_READY, - ua_entry->read_vio); - - // If we're done parsing the header, no need to issue an IO - // which we can't cancel later - if (r == EVENT_DONE) { - return; - } - } - - ua_entry->read_vio = ua_session->do_io_read(this, INT64_MAX, ua_buffer_reader->mbuf); + if (ua_buffer_reader->read_avail() > 0) + handleEvent(VC_EVENT_READ_READY, ua_entry->read_vio); } void
