about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-12-13 21:42:28 +0100
committerbptato <nincsnevem662@gmail.com>2024-12-13 21:46:13 +0100
commit056d24925c0c825b55da481e9980518debae9bc4 (patch)
tree2a69c8071645ba070d2a3287bca8e266afb3ef4c
parent328d67f406215747929ce75cad28d95746323aa2 (diff)
downloadchawan-056d24925c0c825b55da481e9980518debae9bc4.tar.gz
container, cookie: simplify extractCookies, cookieJar.add
-rw-r--r--src/local/container.nim7
-rw-r--r--src/types/cookie.nim7
2 files changed, 4 insertions, 10 deletions
diff --git a/src/local/container.nim b/src/local/container.nim
index 85aaf378..84544dd1 100644
--- a/src/local/container.nim
+++ b/src/local/container.nim
@@ -1508,13 +1508,12 @@ proc onload(container: Container; res: int) =
       container.onload(res)
     )
 
-proc extractCookies(response: Response): seq[Cookie] =
-  result = @[]
+proc extractCookies(response: Response; cookieJar: CookieJar) =
   if "Set-Cookie" in response.headers.table:
     for s in response.headers.table["Set-Cookie"]:
       let cookie = newCookie(s, response.url)
       if cookie.isSome:
-        result.add(cookie.get)
+        cookieJar.add(cookie.get)
 
 # Apply data received in response.
 # Note: pager must call this before checkMailcap.
@@ -1524,7 +1523,7 @@ proc applyResponse*(container: Container; response: Response;
   # accept cookies
   let cookieJar = container.loaderConfig.cookieJar
   if cookieJar != nil:
-    cookieJar.add(response.extractCookies())
+    response.extractCookies(cookieJar)
   # set referrer policy, if any
   let referrerPolicy = response.getReferrerPolicy()
   if container.config.refererFrom:
diff --git a/src/types/cookie.nim b/src/types/cookie.nim
index 113edd58..5706ff97 100644
--- a/src/types/cookie.nim
+++ b/src/types/cookie.nim
@@ -165,8 +165,7 @@ func cookieDomainMatches(cookieDomain: string; url: URL): bool =
 
 proc add*(cookieJar: CookieJar; cookie: Cookie) =
   var i = -1
-  for j in 0 ..< cookieJar.cookies.len:
-    let old = cookieJar.cookies[j]
+  for j, old in cookieJar.cookies.mypairs:
     if old.name == cookie.name and old.domain == cookie.domain and
         old.path == cookie.path:
       i = j
@@ -177,10 +176,6 @@ proc add*(cookieJar: CookieJar; cookie: Cookie) =
     cookieJar.cookies.del(i)
   cookieJar.cookies.add(cookie)
 
-proc add*(cookiejar: CookieJar; cookies: seq[Cookie]) =
-  for cookie in cookies:
-    cookiejar.add(cookie)
-
 # https://www.rfc-editor.org/rfc/rfc6265#section-5.4
 proc serialize*(cookiejar: CookieJar; url: URL): string =
   if not cookiejar.filter.match(url):