From: Amos Jeffries Date: Fri, 23 Mar 2012 03:37:46 +0000 (-0600) Subject: Bug 3504: Regression: clientside_tos fails to mark traffic X-Git-Tag: SQUID_3_1_20~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=648a02ee4b4e43168662ac3f22e93512a796619a;p=thirdparty%2Fsquid.git Bug 3504: Regression: clientside_tos fails to mark traffic revison squid-3.1-10302 removing clientside_tos was a mistake. The actual problem was portage of ssl_bump access control wrongly dropping the clientside_tos_done flag. clientside_mark is the 3.2-only directive. --- diff --git a/src/ClientRequestContext.h b/src/ClientRequestContext.h index 86e65aa02b..99ce613caf 100644 --- a/src/ClientRequestContext.h +++ b/src/ClientRequestContext.h @@ -60,6 +60,7 @@ public: bool redirect_done; bool no_cache_done; bool interpreted_req_hdrs; + bool clientside_tos_done; #if USE_SSL bool sslBumpCheckDone; #endif diff --git a/src/client_side_request.cc b/src/client_side_request.cc index 531e437859..eb5aeda780 100644 --- a/src/client_side_request.cc +++ b/src/client_side_request.cc @@ -1370,6 +1370,18 @@ ClientHttpRequest::doCallouts() } } + if (!calloutContext->clientside_tos_done) { + calloutContext->clientside_tos_done = true; + if (getConn() != NULL) { + ACLFilledChecklist ch(NULL, request, NULL); + ch.src_addr = request->client_addr; + ch.my_addr = request->my_addr; + int tos = aclMapTOS(Config.accessList.clientside_tos, &ch); + if (tos) + comm_set_tos(getConn()->fd, tos); + } + } + #if USE_SSL if (!calloutContext->sslBumpCheckDone) { calloutContext->sslBumpCheckDone = true;