]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Do not duplicate received Surrogate-Capability in sent requests (#2087)
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Tue, 17 Jun 2025 21:00:51 +0000 (21:00 +0000)
committerFrancesco Chemolli <5175948+kinkie@users.noreply.github.com>
Thu, 19 Jun 2025 09:47:36 +0000 (10:47 +0100)
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

index 1cc03c4ce5e5e664f8012211b39db2ddb398a6dd..2b2922207930e67aac2fb86375c90b66a775ffae 100644 (file)
@@ -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());
     }