Revert "TS-3640: Drupal auth fails over SPDY" This reverts commit c8bcd7006ffe66e4dd2d8f072da771cd947e4643.
Conflicts: proxy/http/HttpSM.cc Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5c60883e Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5c60883e Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5c60883e Branch: refs/heads/6.0.x Commit: 5c60883e8919383e61b0199a6289ddc40a3ddc5a Parents: f40bd7c Author: shinrich <shinr...@yahoo-inc.com> Authored: Fri Jul 24 09:50:52 2015 -0500 Committer: shinrich <shinr...@yahoo-inc.com> Committed: Fri Jul 24 09:50:52 2015 -0500 ---------------------------------------------------------------------- proxy/http/HttpSM.cc | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5c60883e/proxy/http/HttpSM.cc ---------------------------------------------------------------------- diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index 4ac8d4a..c9b1322 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -3173,9 +3173,19 @@ HttpSM::tunnel_handler_ua(int event, HttpTunnelConsumer *c) ink_assert(ua_entry->vc == c->vc); if (close_connection) { - // If the client could be pipelining, we need to set the ua_session into half close mode - - if (t_state.client_info.pipeline_possible == true && c->producer->vc_type != HT_STATIC && event == VC_EVENT_WRITE_COMPLETE) { + // If the client could be pipelining or is doing a POST, we need to + // set the ua_session into half close mode + + // only external POSTs should be subject to this logic; ruling out internal POSTs here + bool is_eligible_post_request = (t_state.method == HTTP_WKSIDX_POST); + if (is_eligible_post_request) { + NetVConnection *vc = ua_session->get_netvc(); + if (vc) { + is_eligible_post_request = vc->get_is_internal_request() ? false : true; + } + } + if ((is_eligible_post_request || t_state.client_info.pipeline_possible == true) && c->producer->vc_type != HT_STATIC && + event == VC_EVENT_WRITE_COMPLETE) { ua_session->set_half_close_flag(); }