+(defun uri->recode-uri-sans-session-id (uri)
+ (let ((parsed-path (puri:uri-parsed-path uri)))
+ (cond
+ ((and (eq :absolute (first parsed-path))
+ (is-raw-session-id (second parsed-path)))
+ (values (copy-uri uri :place t
+ :parsed-path
+ (list* :absolute (cddr parsed-path)))
+ (raw-session-id->session-id (second parsed-path))))
+ (t
+ (values uri nil)))))
+
+(defun request-cookies (req)
+ (aif (aserve-request req)
+ (net.aserve:get-cookie-values it)
+ (loop for h in (request-headers req)
+ when (eq :cookie (car h))
+ collect (cdr h))))
+
+(defun cookie-session-key (ent cookies)
+ (let ((name (project-name (entity-project ent))))
+ (cdr (assoc name cookies :test #'string-equal))))
+
+(defun url-session-key (url)
+ "Return a session key encoded in a URL"
+ nil)
+
+(defun compute-uris (req ent)
+ "Compute URI's of a request"
+ (compute-session req ent)