X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FPreprocess.hs;h=26fbd53546a2412a90d40f5f30c234620ab6890d;hp=8e3087ebae70654ae0b4a8f74b5e1f0a4102c466;hb=a362be1c8664306b970c32e1df9b62081498feb1;hpb=45e3770f440c9fa8668f7e33063d630d73bcbe55 diff --git a/Network/HTTP/Lucu/Preprocess.hs b/Network/HTTP/Lucu/Preprocess.hs index 8e3087e..26fbd53 100644 --- a/Network/HTTP/Lucu/Preprocess.hs +++ b/Network/HTTP/Lucu/Preprocess.hs @@ -17,7 +17,6 @@ import Data.Ascii (Ascii) import qualified Data.Ascii as A import qualified Data.ByteString.Char8 as C8 import Data.Maybe -import qualified Data.Strict.Maybe as S import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as T @@ -37,7 +36,7 @@ data AugmentedRequest , arWillDiscardBody ∷ !Bool , arWillClose ∷ !Bool , arExpectedContinue ∷ !Bool - , arReqBodyLength ∷ !(S.Maybe RequestBodyLength) + , arReqBodyLength ∷ !(Maybe RequestBodyLength) } data RequestBodyLength @@ -57,7 +56,7 @@ preprocess localHost localPort req@(Request {..}) , arWillDiscardBody = False , arWillClose = False , arExpectedContinue = False - , arReqBodyLength = S.Nothing + , arReqBodyLength = Nothing } go ∷ State AugmentedRequest () go = do examineHttpVersion @@ -78,7 +77,7 @@ setWillClose ∷ Bool → State AugmentedRequest () setWillClose b = modify $ \ar → ar { arWillClose = b } -setBodyLength ∷ S.Maybe RequestBodyLength → State AugmentedRequest () +setBodyLength ∷ Maybe RequestBodyLength → State AugmentedRequest () setBodyLength len = modify $ \ar → ar { arReqBodyLength = len } @@ -174,7 +173,7 @@ examineHeaders | v ≡ "identity" → return () | v ≡ "chunked" - → setBodyLength $ S.Just Chunked + → setBodyLength $ Just Chunked | otherwise → setStatus NotImplemented @@ -183,7 +182,7 @@ examineHeaders Just value → case C8.readInt value of Just (len, garbage) | C8.null garbage ∧ len ≥ 0 - → setBodyLength $ S.Just $ Fixed len + → setBodyLength $ Just $ Fixed len _ → setStatus BadRequest case getCIHeader "Connection" req of @@ -198,9 +197,9 @@ examineBodyLength len ← gets arReqBodyLength if reqMustHaveBody req then -- POST and PUT requests must have an entity body. - when (S.isNothing len) + when (isNothing len) $ setStatus LengthRequired else -- Other requests must NOT have an entity body. - when (S.isJust len) + when (isJust len) $ setStatus BadRequest