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 2015/07/29 01:40:31 UTC

[53/62] [abbrv] trafficserver git commit: Revert "TS-3640: Drupal auth fails over SPDY"

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 <sh...@yahoo-inc.com>
Authored: Fri Jul 24 09:50:52 2015 -0500
Committer: shinrich <sh...@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();
     }