X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FPreprocess.hs;h=1c11f89784cb622ec6ee5fae0e67c7acd666c9c1;hb=2d25d34513dc4f6bf62e53e2af2f4a4ef39cc6dc;hp=3552e489e23da5494182a034788f90ef5519949d;hpb=a9e9f50818285bf66cd64e5a248175eecb8e1fea;p=Lucu.git diff --git a/Network/HTTP/Lucu/Preprocess.hs b/Network/HTTP/Lucu/Preprocess.hs index 3552e48..1c11f89 100644 --- a/Network/HTTP/Lucu/Preprocess.hs +++ b/Network/HTTP/Lucu/Preprocess.hs @@ -70,22 +70,12 @@ preprocess itr case reqMethod req of GET -> return () HEAD -> writeItr itr itrWillDiscardBody True - POST -> ensureHavingBody itr - PUT -> ensureHavingBody itr + POST -> writeItr itr itrRequestHasBody True + PUT -> writeItr itr itrRequestHasBody True _ -> setStatus itr NotImplemented mapM_ (preprocessHeader itr) (reqHeaders req) where - ensureHavingBody itr - = let req = fromJust $ itrRequest itr - in - if getHeader "Content-Length" req == Nothing && - getHeader "Transfer-Encoding" req == Nothing then - - setStatus itr LengthRequired - else - writeItr itr itrRequestHasBody True - setStatus itr status = writeItr itr itrResponse $ Just (Response { resVersion = HttpVersion 1 1 @@ -110,7 +100,9 @@ preprocess itr "content-length" -> if all isDigit value then - writeItr itr itrRequestBodyLength $ Just $ read value + do let len = read value + writeItr itr itrReqChunkLength $ Just len + writeItr itr itrReqChunkRemaining $ Just len else setStatus itr BadRequest