From c6bdd8969fad2ad912b2a09fe7ba031d87a31d0d Mon Sep 17 00:00:00 2001 From: Eduard Bagdasaryan Date: Tue, 17 Jun 2025 21:00:51 +0000 Subject: [PATCH] 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" --- src/http.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/http.cc b/src/http.cc index c712b4b8bc..66184e0494 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1957,6 +1957,7 @@ HttpStateData::httpBuildRequestHeader(HttpRequest * request, String strSurrogate(hdr_in->getList(Http::HdrType::SURROGATE_CAPABILITY)); snprintf(bbuf, BBUF_SZ, "%s=\"Surrogate/1.0\"", Config.Accel.surrogate_id); strListAdd(&strSurrogate, bbuf, ','); + hdr_out->delById(Http::HdrType::SURROGATE_CAPABILITY); hdr_out->putStr(Http::HdrType::SURROGATE_CAPABILITY, strSurrogate.termedBuf()); } -- 2.47.3