From: Nick Rogers Date: Sat, 9 Feb 2013 07:05:40 +0000 (-0700) Subject: Bug 3767: tcp_outgoing_tos/mark ACLs do not obey acl_uses_indirect_client X-Git-Tag: SQUID_3_2_8~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca10b8e48b487b151cd1ddc7494af8962b08caf3;p=thirdparty%2Fsquid.git Bug 3767: tcp_outgoing_tos/mark ACLs do not obey acl_uses_indirect_client --- diff --git a/src/forward.cc b/src/forward.cc index 39936310ea..91a172bc9a 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -265,11 +265,12 @@ FwdState::Start(const Comm::ConnectionPointer &clientConn, StoreEntry *entry, Ht if ( Config.accessList.miss && !request->client_addr.IsNoAddr() && request->protocol != AnyP::PROTO_INTERNAL && request->protocol != AnyP::PROTO_CACHE_OBJECT) { /** - * Check if this host is allowed to fetch MISSES from us (miss_access) + * Check if this host is allowed to fetch MISSES from us (miss_access). + * Intentionally replace the src_addr automatically selected by the checklist code + * we do NOT want the indirect client address to be tested here. */ ACLFilledChecklist ch(Config.accessList.miss, request, NULL); ch.src_addr = request->client_addr; - ch.my_addr = request->my_addr; if (ch.fastCheck() == ACCESS_DENIED) { err_type page_id; page_id = aclGetDenyInfoPage(&Config.denyInfoList, AclMatchedName, 1); @@ -1350,12 +1351,6 @@ tos_t GetTosToServer(HttpRequest * request) { ACLFilledChecklist ch(NULL, request, NULL); - - if (request) { - ch.src_addr = request->client_addr; - ch.my_addr = request->my_addr; - } - return aclMapTOS(Ip::Qos::TheConfig.tosToServer, &ch); } @@ -1363,11 +1358,5 @@ nfmark_t GetNfmarkToServer(HttpRequest * request) { ACLFilledChecklist ch(NULL, request, NULL); - - if (request) { - ch.src_addr = request->client_addr; - ch.my_addr = request->my_addr; - } - return aclMapNfmark(Ip::Qos::TheConfig.nfmarkToServer, &ch); }