Author: achiumenti Date: Tue Oct 21 12:42:43 2008 New Revision: 119
Log: several bugfixes and enhancements
Modified: trunk/main/claw/src/session-manager.lisp
Modified: trunk/main/claw/src/session-manager.lisp ============================================================================== --- trunk/main/claw/src/session-manager.lisp (original) +++ trunk/main/claw/src/session-manager.lisp Tue Oct 21 12:42:43 2008 @@ -340,15 +340,16 @@ (let ((connector (clawserver-connector *clawserver*)) (cookie-name (default-session-manager-session-cookie-name session-manager)) (current-session (or session (default-session-manager-current-session session-manager)))) - (bt:with-lock-held ((default-session-manager-service-lock session-manager)) - (remhash (session-id current-session) (default-session-manager-sessions session-manager)) - (let ((cookie (make-instance 'claw-cookie - :name cookie-name - :expires (get-universal-time) - :path (format nil "~a/" *root-path*) - :domain nil - :value ""))) - (setf (connector-cookie-out connector cookie-name) cookie))))) + (when current-session + (bt:with-lock-held ((default-session-manager-service-lock session-manager)) + (remhash (session-id current-session) (default-session-manager-sessions session-manager)) + (let ((cookie (make-instance 'claw-cookie + :name cookie-name + :expires (get-universal-time) + :path (format nil "~a/" *root-path*) + :domain nil + :value ""))) + (setf (connector-cookie-out connector cookie-name) cookie))))))
(defmethod session-manager-session-value ((session-manager default-session-manager) symbol) (let ((session (default-session-manager-current-session session-manager)))