From: Eduard Bagdasaryan Date: Tue, 17 Jun 2025 21:00:51 +0000 (+0000) Subject: Do not duplicate received Surrogate-Capability in sent requests (#2087) X-Git-Tag: SQUID_6_14~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d0be5582918cd179addde8f607586f9ffba4094;p=thirdparty%2Fsquid.git Do not duplicate received Surrogate-Capability in sent requests (#2087) When computing Surrogate-Capability header while forwarding an accelerated request, Squid duplicated old (i.e. received) header entries (if any). For example, this outgoing request shows an extra hop1 entry: GET / HTTP/1.1 ... Surrogate-Capability: hop1="Surrogate/1.0" Surrogate-Capability: hop1="Surrogate/1.0", hop2="Surrogate/1.0" --- diff --git a/src/http.cc b/src/http.cc index 1cc03c4ce5..2b29222079 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1964,6 +1964,7 @@ HttpStateData::httpBuildRequestHeader(HttpRequest * request, snprintf(bbuf, BBUF_SZ, "%s=\"Surrogate/1.0\"", Config.Accel.surrogate_id); #endif strListAdd(&strSurrogate, bbuf, ','); + hdr_out->delById(Http::HdrType::SURROGATE_CAPABILITY); hdr_out->putStr(Http::HdrType::SURROGATE_CAPABILITY, strSurrogate.termedBuf()); }