You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jr...@apache.org on 2016/04/06 21:49:17 UTC

trafficserver git commit: TS-4327: Fix bug introduced with the addition of multi-site origin to parent selection.

Repository: trafficserver
Updated Branches:
  refs/heads/master baa615072 -> ee5debcf5


TS-4327: Fix bug introduced with the addition of multi-site origin to parent selection.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/ee5debcf
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/ee5debcf
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/ee5debcf

Branch: refs/heads/master
Commit: ee5debcf55f4014a07d285f7d44bb95e0fe82529
Parents: baa6150
Author: John J. Rushford <Jo...@cable.comcast.com>
Authored: Wed Apr 6 19:49:04 2016 +0000
Committer: John J. Rushford <Jo...@cable.comcast.com>
Committed: Wed Apr 6 19:49:04 2016 +0000

----------------------------------------------------------------------
 proxy/http/HttpTransact.cc | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ee5debcf/proxy/http/HttpTransact.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 8a1f536..085ebb5 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -210,19 +210,25 @@ find_server_and_update_current_info(HttpTransact::State *s)
     // I just wanted to do this for cop heartbeats, someone else
     // wanted it for all requests to local_host.
     s->parent_result.r = PARENT_DIRECT;
-  } else if (s->method == HTTP_WKSIDX_CONNECT && s->http_config_param->disable_ssl_parenting &&
-             s->parent_result.rec->parent_is_proxy) {
-    s->parent_result.r = PARENT_DIRECT;
+  } else if (s->method == HTTP_WKSIDX_CONNECT && s->http_config_param->disable_ssl_parenting) {
+    s->parent_params->findParent(&s->request_data, &s->parent_result);
+    if (s->parent_result.rec == NULL || s->parent_result.rec->parent_is_proxy) {
+      DebugTxn("http_trans", "request not cacheable, so bypass parent");
+      s->parent_result.r = PARENT_DIRECT;
+    }
   } else if (s->http_config_param->uncacheable_requests_bypass_parent && s->http_config_param->no_dns_forward_to_parent == 0 &&
-             !HttpTransact::is_request_cache_lookupable(s) && s->parent_result.rec->parent_is_proxy) {
+             !HttpTransact::is_request_cache_lookupable(s)) {
     // request not lookupable and cacheable, so bypass parent if the parent is not an origin server.
     // Note that the configuration of the proxy as well as the request
     // itself affects the result of is_request_cache_lookupable();
     // we are assuming both child and parent have similar configuration
     // with respect to whether a request is cacheable or not.
     // For example, the cache_urls_that_look_dynamic variable.
-    DebugTxn("http_trans", "request not cacheable, so bypass parent");
-    s->parent_result.r = PARENT_DIRECT;
+    s->parent_params->findParent(&s->request_data, &s->parent_result);
+    if (s->parent_result.rec == NULL || s->parent_result.rec->parent_is_proxy) {
+      DebugTxn("http_trans", "request not cacheable, so bypass parent");
+      s->parent_result.r = PARENT_DIRECT;
+    }
   } else {
     switch (s->parent_result.r) {
     case PARENT_UNDEFINED: