on master help sign in
Remove requestBody
commitd22907388062fd68fe79093cf49d4b11bfb5e51f authorMichael Snoyman <michael@snoyman.com> dateThu 30 Dec 2010, 23:55 (16 years ago) parent91f36cf
4 files changed+9−7
Network/Wai/Handler/CGI.hs+3−3 Network/Wai/Middleware/Jsonp.hs+2−1 Network/Wai/Parse.hs+3−3 wai-extra.cabal+1
Network/Wai/Handler/CGI.hs+3−3
@@ -18,7 +18,7 @@ import qualified System.IO
1818import qualified Data.String as String
1919import Data.Enumerator
2020 ( Enumerator, Step (..), Stream (..), continue, yield
21− , enumList, ($$), joinI, returnI, (>>==)
21+ , enumList, ($$), joinI, returnI, (>>==), run_
2222 )
2323import Data.Monoid (mconcat)
2424import Blaze.ByteString.Builder (fromByteString, toLazyByteString)
@@ -94,12 +94,12 @@ run'' vars inputH outputH xsendfile app = do
9494 , serverPort = serverport
9595 , requestHeaders = map (cleanupVarName *** B.pack) vars
9696 , isSecure = isSecure'
97− , requestBody = inputH contentLength
9897 , errorHandler = System.IO.hPutStr System.IO.stderr
9998 , remoteHost = B.pack remoteHost'
10099 , httpVersion = "1.1" -- FIXME
101100 }
102− res <- app env
101+ -- FIXME worry about exception?
102+ res <- run_ $ inputH contentLength $$ app env
103103 case (xsendfile, res) of
104104 (Just sf, ResponseFile s hs fp) ->
105105 mapM_ outputH $ L.toChunks $ toLazyByteString $ sfBuilder s hs sf fp
Network/Wai/Middleware/Jsonp.hs+2−1
@@ -76,7 +76,8 @@ jsonp app env = do
7676 Just "application/json" -> Just $ fixHeaders hs
7777 _ -> Nothing
7878 fixHeaders = changeVal "Content-Type" "text/javascript"
79− addCallback :: B8.ByteString -> (forall a. ResponseEnumerator a) -> IO Response
79+ addCallback :: B8.ByteString -> (forall a. ResponseEnumerator a)
80+ -> Iteratee B8.ByteString IO Response
8081 addCallback cb e =
8182 return $ ResponseEnumerator $ helper
8283 where
Network/Wai/Parse.hs+3−3
@@ -31,7 +31,7 @@ import Data.Function (on)
3131import System.Directory (removeFile, getTemporaryDirectory)
3232import System.IO (hClose, openBinaryTempFile, Handle)
3333import Network.Wai
34−import Data.Enumerator (Iteratee, yield, ($$))
34+import Data.Enumerator (Iteratee, yield)
3535import qualified Data.Enumerator as E
3636import Control.Monad.IO.Class (liftIO)
3737
@@ -157,7 +157,7 @@ parseRequestBody :: Sink x y
157157parseRequestBody sink req = do
158158 case ctype of
159159 Nothing -> return ([], [])
160− Just Nothing -> requestBody req $$ do -- url-encoded
160+ Just Nothing -> do -- url-encoded
161161 -- NOTE: in general, url-encoded data will be in a single chunk.
162162 -- Therefore, I'm optimizing for the usual case by sticking with
163163 -- strict byte strings here.
@@ -165,7 +165,7 @@ parseRequestBody sink req = do
165165 return (parseQueryString $ S.concat bs, [])
166166 Just (Just bound) -> -- multi-part
167167 let bound' = S8.pack "--" `S.append` bound
168− in requestBody req $$ parsePieces sink bound'
168+ in parsePieces sink bound'
169169 where
170170 urlenc = S8.pack "application/x-www-form-urlencoded"
171171 formBound = S8.pack "multipart/form-data; boundary="
wai-extra.cabal+1
@@ -28,6 +28,7 @@ Library
2828 Exposed-modules: Network.Wai.Handler.CGI
2929 Network.Wai.Middleware.Autohead
3030 Network.Wai.Middleware.CleanPath
31+ Network.Wai.Middleware.Debug
3132 Network.Wai.Middleware.Gzip
3233 Network.Wai.Middleware.Jsonp
3334 Network.Wai.Middleware.Vhost