diff options
author | bptato <nincsnevem662@gmail.com> | 2024-12-29 18:27:37 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-12-29 18:43:22 +0100 |
commit | aa2e19429c2e5ed42a21470c36635f6543b129fb (patch) | |
tree | ff45d52ec207db6d868ed368258d04ebd1e25aed /src/server | |
parent | e60c82ec37b69ce82f40de5f66f079a9a0aee6be (diff) | |
download | chawan-aa2e19429c2e5ed42a21470c36635f6543b129fb.tar.gz |
cookie: add persistent cookies, misc refactoring/fixes
Mostly compatible with other browsers/tools that follow the Netscape/curl format. Cookie jars are represented by prepending "jar@" to the host part, but *only* if the target jar is different than the domain. Hopefully, other software at least does not choke on this convention. (At least curl seems to simply ignore the entries.) Also, I've moved cookies.nim to config so that code for local files parsed at startup remains in one place.
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/buffer.nim | 1 | ||||
-rw-r--r-- | src/server/loader.nim | 2 | ||||
-rw-r--r-- | src/server/loaderiface.nim | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/src/server/buffer.nim b/src/server/buffer.nim index ea6a0d94..017b0965 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -138,6 +138,7 @@ type protocol*: Table[string, ProtocolConfig] imageTypes*: Table[string, string] userAgent*: string + cookieMode*: CookieMode GetValueProc = proc(iface: BufferInterface; promise: EmptyPromise) {.nimcall.} diff --git a/src/server/loader.nim b/src/server/loader.nim index 93ecc1bb..b5e0ee91 100644 --- a/src/server/loader.nim +++ b/src/server/loader.nim @@ -27,6 +27,7 @@ import std/posix import std/strutils import std/tables +import config/cookie import config/urimethodmap import io/bufreader import io/bufwriter @@ -39,7 +40,6 @@ import server/headers import server/loaderiface import server/request import server/urlfilter -import types/cookie import types/formdata import types/opt import types/referrer diff --git a/src/server/loaderiface.nim b/src/server/loaderiface.nim index faa9b021..d76ee14f 100644 --- a/src/server/loaderiface.nim +++ b/src/server/loaderiface.nim @@ -5,6 +5,7 @@ import std/tables +import config/cookie import io/bufreader import io/bufwriter import io/dynstream @@ -15,7 +16,6 @@ import server/headers import server/request import server/response import server/urlfilter -import types/cookie import types/opt import types/referrer import types/url |