diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/local/container.nim | 7 | ||||
-rw-r--r-- | src/types/cookie.nim | 7 |
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): |