summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-03-02 18:12:15 -0800
committerKaz Kylheku <kaz@kylheku.com>2016-03-02 18:12:15 -0800
commit88e22c838c889ce5cb099b475d6b24053e2f16ab (patch)
treec0e9998e6d9b087be5c0905f80117b1a81bc99d4
parentb09356a195cb352c5b220f60bc78ac9bba47cb66 (diff)
downloadtamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.tar.gz
tamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.tar.bz2
tamarind-88e22c838c889ce5cb099b475d6b24053e2f16ab.zip
Configurable sessions dir.
-rw-r--r--config.txr1
-rw-r--r--session.txr8
2 files changed, 5 insertions, 4 deletions
diff --git a/config.txr b/config.txr
index 57cd00f..4f8d815 100644
--- a/config.txr
+++ b/config.txr
@@ -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)