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();
}