about summary refs log tree commit diff stats
path: root/src/server/loader.nim
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-04-13 18:39:00 +0200
committerbptato <nincsnevem662@gmail.com>2025-04-13 19:10:41 +0200
commite07ab87d94cbc701c55b64e1a2b1c60ac7297233 (patch)
treeafbcda11d3f754862029c2516da7acf65a6758cf /src/server/loader.nim
parent090d4b78bb149a790035ff95bc5f16a6af56bf57 (diff)
downloadchawan-e07ab87d94cbc701c55b64e1a2b1c60ac7297233.tar.gz
loader: remove referrer field from Request
It's OK to store it in headers.
Diffstat (limited to 'src/server/loader.nim')
-rw-r--r--src/server/loader.nim16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/server/loader.nim b/src/server/loader.nim
index dcd6d407..38435d27 100644
--- a/src/server/loader.nim
+++ b/src/server/loader.nim
@@ -875,10 +875,12 @@ proc setupEnv(cpath: CGIPath; request: Request; contentLen: int; prevURL: URL;
       let contentType = request.headers.getOrDefault("Content-Type")
       result.add(("CONTENT_TYPE", contentType))
     result.add(("CONTENT_LENGTH", $contentLen))
-  if "Cookie" in request.headers:
-    result.add(("HTTP_COOKIE", request.headers["Cookie"]))
-  if request.referrer != nil:
-    result.add(("HTTP_REFERER", $request.referrer))
+  let cookie = request.headers.getOrDefault("Cookie")
+  if cookie != "":
+    result.add(("HTTP_COOKIE", cookie))
+  let referer = request.headers.getOrDefault("Referer")
+  if referer != "":
+    result.add(("HTTP_REFERER", referer))
   if config.proxy != nil:
     result.add(("ALL_PROXY", $config.proxy))
   if config.insecureSslNoVerify:
@@ -1390,8 +1392,10 @@ proc setupRequestDefaults(request: Request; config: LoaderClientConfig;
       let cookie = config.cookieJar.serialize(request.url)
       if cookie != "":
         request.headers["Cookie"] = cookie
-  if request.referrer != nil and "Referer" notin request.headers:
-    let r = request.referrer.getReferrer(request.url, config.referrerPolicy)
+  let referrer = request.getReferrer()
+  request.headers.del("Referer")
+  if referrer != nil:
+    let r = referrer.getReferrer(request.url, config.referrerPolicy)
     if r != "":
       request.headers["Referer"] = r