]> 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>
Wed, 18 Jun 2025 20:23:38 +0000 (21:23 +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 54ef437815a30be9b74b7f6e49b52c41b6680a32..28abf848112c65386c0794706166029fc0d2f49b 100644 (file)
@@ -1952,6 +1952,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());
     }