X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FPreprocess.hs;fp=Network%2FHTTP%2FLucu%2FPreprocess.hs;h=77047273c43564feddc2ef688be16eb652f57d73;hp=1284f2b322749e2e69dcd0d69702065a7aa99644;hb=6680828c79aff38431704075c339e043b577589e;hpb=bb41be0c967538a1014c87103a3a5d3840ad3e15 diff --git a/Network/HTTP/Lucu/Preprocess.hs b/Network/HTTP/Lucu/Preprocess.hs index 1284f2b..7704727 100644 --- a/Network/HTTP/Lucu/Preprocess.hs +++ b/Network/HTTP/Lucu/Preprocess.hs @@ -18,6 +18,7 @@ import qualified Data.Ascii as A import qualified Data.ByteString.Char8 as C8 import Data.CaseInsensitive (CI) import qualified Data.CaseInsensitive as CI +import Data.Convertible.Base import Data.Maybe import Data.Text (Text) import qualified Data.Text as T @@ -137,7 +138,7 @@ examineAuthority localHost localPort parseHost ∷ Ascii → (CI Text, Ascii) parseHost hp - = let (h, p) = C8.break (≡ ':') $ A.toByteString hp + = let (h, p) = C8.break (≡ ':') $ cs hp -- FIXME: should decode punycode here. hText = CI.mk $ T.decodeUtf8 h pAscii = A.unsafeFromByteString p @@ -151,7 +152,7 @@ updateAuthority host port req uriAuthority = Just URIAuth { uriUserInfo = "" , uriRegName = T.unpack $ CI.original host - , uriPort = A.toString port + , uriPort = cs port } } in @@ -179,7 +180,7 @@ examineHeaders | otherwise → setStatus NotImplemented - case A.toByteString <$> getHeader "Content-Length" req of + case cs <$> getHeader "Content-Length" req of Nothing → return () Just value → case C8.readInt value of Just (len, garbage)