diff --git a/collects/web-server/prototype-web-server/private/stuff-url.ss b/collects/web-server/prototype-web-server/private/stuff-url.ss index 9007f6f8d1..4a4f732936 100644 --- a/collects/web-server/prototype-web-server/private/stuff-url.ss +++ b/collects/web-server/prototype-web-server/private/stuff-url.ss @@ -8,6 +8,7 @@ ; XXX different ways to hash, different ways to store (maybe cookie?) (provide stuff-url + stuffed-url? extend-url-query unstuff-url) @@ -36,6 +37,12 @@ (error "the url is too big: " (url->string result-uri))) result-uri) + (define (stuffed-url? uri) + (let* ([qry (url-query uri)] + [l-code (find-binding 'c qry)]) + (and l-code + #t))) + (define (extend-url-query uri key val) (make-url (url-scheme uri) diff --git a/collects/web-server/prototype-web-server/private/web.ss b/collects/web-server/prototype-web-server/private/web.ss index a013739839..f0d4f10783 100644 --- a/collects/web-server/prototype-web-server/private/web.ss +++ b/collects/web-server/prototype-web-server/private/web.ss @@ -90,10 +90,8 @@ (or ; Look in url for c= (let* ([ses (current-session)] - [req-url (request-uri req)] - [qry (url-query req-url)] - [l-code (find-binding 'c qry)]) - (and l-code + [req-url (request-uri req)]) + (and (stuffed-url? req-url) (deserialize (unstuff-url req-url (session-url ses)