paivana

HTTP paywall reverse proxy
Log | Files | Refs | Submodules | README | LICENSE

commit 99d184b59f12d2028a6affa7c5f1e75fd49360e6
parent 69f692846052ddb957516cf2d659d205a1631e57
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  6 Aug 2026 16:19:12 +0200

preserve header order: need to insert at tail

Diffstat:
Msrc/backend/paivana-httpd_reverse.c | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/backend/paivana-httpd_reverse.c b/src/backend/paivana-httpd_reverse.c @@ -757,9 +757,13 @@ curl_check_hdr (void *buffer, header = GNUNET_new (struct HttpResponseHeader); header->type = GNUNET_strdup (hdr_type); header->value = GNUNET_strdup (hdr_val); - GNUNET_CONTAINER_DLL_insert (hr->header_head, - hr->header_tail, - header); + /* RFC 9110 section 5.3: "a proxy MUST NOT change the order of + these field line values when a message is forwarded". A head + insert reverses them, which matters for Set-Cookie, Link, + WWW-Authenticate and Content-Security-Policy. */ + GNUNET_CONTAINER_DLL_insert_tail (hr->header_head, + hr->header_tail, + header); } GNUNET_free (ndup); return bytes;