Post requests were being decoded before splitting into an ALIST. This
caused problems if the post data contained an '&' or '='. Now the decoding is done after the splitting. Also added logging of the original post data and the decoded alist.cvs
parent
7c0ae6a136
commit
c72246cedd
|
@ -41,6 +41,7 @@ USE: kernel
|
||||||
USE: logic
|
USE: logic
|
||||||
USE: cont-html
|
USE: cont-html
|
||||||
USE: logging
|
USE: logging
|
||||||
|
USE: url-encoding
|
||||||
|
|
||||||
: expiry-timeout ( -- timeout-seconds )
|
: expiry-timeout ( -- timeout-seconds )
|
||||||
#! Number of seconds to timeout continuations in
|
#! Number of seconds to timeout continuations in
|
||||||
|
@ -257,19 +258,26 @@ DEFER: show
|
||||||
"&" split [ "=" split1 ] inject
|
"&" split [ "=" split1 ] inject
|
||||||
] [
|
] [
|
||||||
"=" split1 unit
|
"=" split1 unit
|
||||||
] ifte ;
|
] ifte [ uncons >r url-decode r> url-decode cons ] inject ;
|
||||||
|
|
||||||
: post-request>namespace ( post-request -- namespace )
|
: post-request>namespace ( post-request -- namespace )
|
||||||
#! Return a namespace containing the name/value's from the
|
#! Return a namespace containing the name/value's from the
|
||||||
#! post data.
|
#! post data.
|
||||||
post-request>alist alist>namespace ;
|
post-request>alist dup log alist>namespace ;
|
||||||
|
|
||||||
|
: read-undecoded-post-request ( -- string )
|
||||||
|
#! Read the post request from the socket and return the post data
|
||||||
|
#! before it has been url decoded.
|
||||||
|
read-header content-length dup [
|
||||||
|
read#
|
||||||
|
] when ;
|
||||||
|
|
||||||
: cont-post-responder ( id -- )
|
: cont-post-responder ( id -- )
|
||||||
#! httpd responder that retrieves a continuation for the given
|
#! httpd responder that retrieves a continuation for the given
|
||||||
#! id and calls it with the POST data as an alist on the top
|
#! id and calls it with the POST data as an alist on the top
|
||||||
#! of the stack.
|
#! of the stack.
|
||||||
[
|
[
|
||||||
read-post-request dup log post-request>namespace swap resume-continuation
|
read-undecoded-post-request dup log post-request>namespace swap resume-continuation
|
||||||
] with-exit-continuation
|
] with-exit-continuation
|
||||||
print drop ;
|
print drop ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue