diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-03-02 18:12:15 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-03-02 18:12:15 -0800 |
commit | 88e22c838c889ce5cb099b475d6b24053e2f16ab (patch) | |
tree | c0e9998e6d9b087be5c0905f80117b1a81bc99d4 | |
parent | b09356a195cb352c5b220f60bc78ac9bba47cb66 (diff) | |
download | tamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.tar.gz tamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.tar.bz2 tamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.zip |
Configurable sessions dir.
-rw-r--r-- | config.txr | 1 | ||||
-rw-r--r-- | session.txr | 8 |
2 files changed, 5 insertions, 4 deletions
@@ -1,3 +1,4 @@ @(bind debug-enable t) @(bind aliases-file "/etc/tamarind/aliases") +@(bind sessions-dir "/var/run/tamarind/sessions") @(bind csslink "") diff --git a/session.txr b/session.txr index 0a2b8a0..1f9be6e 100644 --- a/session.txr +++ b/session.txr @@ -1,14 +1,14 @@ @(define ensure-session (userid clientip)) -@ (do (ensure-dir ".sessions" #o700)) +@ (do (ensure-dir sessions-dir #o700)) @ (bind sessionid @(rand (expt 2 128))) -@ (output `.sessions/@userid`) +@ (output `@{sessions-dir}/@userid`) @userid @sessionid @clientip @(time) @ (end) @ (add-header "Set-Cookie" `tamarind-login=@userid:@sessionid`) @(end) @; @(define remove-session (userid)) -@ (do (ignerr (remove-path `.sessions/@userid`))) +@ (do (ignerr (remove-path `@{sessions-dir}/@userid`))) @ (add-header "Set-Cookie" `tamarind-login=;max-age=0`) @(end) @; @@ -19,7 +19,7 @@ HTTP_COOKIE=@(skip)tamarind-login=@userid:@{sessionid /\d+/}@(skip) @(define check-session (valid-p userid sessid clientip)) @ (cases) @ (require (and userid sessid)) -@ (next `.sessions/@{userid}` :nothrow) +@ (next `@{sessions-dir}/@{userid}` :nothrow) @{userid} @{sessid} @clientip @timestamp @ (require (< (- (time) (int-str timestamp)) (* 3600 169))) @ (bind valid-p t) |