Index: cookie.scm ================================================================== --- cookie.scm +++ cookie.scm @@ -45,24 +45,24 @@ (declare (unit cookie)) (require-extension srfi-1 srfi-13 srfi-14 regex) ;; (use srfi-1 srfi-13 srfi-14 regex) ;; (declare (export parse-cookie-string construct-cookie-string)) -#> -#include -<# - -(define fmt-time - (foreign-lambda* c-string ((long secs_since_epoch)) - "static char buf[256];" - "time_t t = (time_t) secs_since_epoch;" - "strftime(buf, sizeof(buf), \"%a, %d-%b-%Y %H:%M:%S GMT\", gmtime(&t));" - "return(buf);")) +;; #> +;; #include +;; <# +;; +;; (define fmt-time +;; (foreign-lambda* c-string ((long secs_since_epoch)) +;; "static char buf[256];" +;; "time_t t = (time_t) secs_since_epoch;" +;; "strftime(buf, sizeof(buf), \"%a, %d-%b-%Y %H:%M:%S GMT\", gmtime(&t));" +;; "return(buf);")) -;; (define (fmt-time seconds) -;; (time->string (seconds->utc-time seconds) "%D")) +(define (fmt-time seconds) + (time->string (seconds->utc-time seconds) "%D")) ;; utility fn. breaks ``attr=value;attr=value ... '' into alist. ;; version is a cookie version. if version>0, we allow comma as the ;; delimiter as well as semicolon. (define (parse-av-pairs input version) Index: session.scm ================================================================== --- session.scm +++ session.scm @@ -325,21 +325,24 @@ (sdat-get-conn self) (s:sqlparam query session-key)) result)) ;; delete all records for a session +;; +;; NEEDS TO BE TRANSACTIONIZED! ;; (define (session:delete-session self session-key) (let ((session-id (session:get-session-id self session-key)) - (qry (conc "BEGIN;" - "DELETE FROM session_vars WHERE session_id=?;" - "DELETE FROM sessions WHERE id=?;" - "COMMIT;")) + (qry1 ;; (conc "BEGIN;" + "DELETE FROM session_vars WHERE session_id=?;") + (qry2 "DELETE FROM sessions WHERE id=?;") + ;; "COMMIT;")) (conn (sdat-get-conn self))) (if session-id (begin - (dbi:exec conn qry session-id session-id) + (dbi:exec conn qry1 session-id) ;; session-id) + (dbi:exec conn qry2 session-id) (session:initialize self) (session:setup self))) (not (session:get-session-id self session-key)))) ;; (define (session:delete-session self session-key)