X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FHeaders.hs;h=febbdb6271ae362dd5e3c9a57fdff0975f68771f;hb=73b5fba4907604681d778d3bd54cd65fd84b4454;hp=5eeab6feb699b8455b717ea920b81e60a94ece3c;hpb=3d017dd65ddede9a11c5b7a34a91e04340e67bc4;p=Lucu.git diff --git a/Network/HTTP/Lucu/Headers.hs b/Network/HTTP/Lucu/Headers.hs index 5eeab6f..febbdb6 100644 --- a/Network/HTTP/Lucu/Headers.hs +++ b/Network/HTTP/Lucu/Headers.hs @@ -25,10 +25,10 @@ import Data.Word import Foreign.ForeignPtr import Foreign.Ptr import Foreign.Storable +import Network.HTTP.Lucu.HandleLike import Network.HTTP.Lucu.Parser import Network.HTTP.Lucu.Parser.Http import Network.HTTP.Lucu.Utils -import System.IO type Headers = Map NCBS Strict.ByteString newtype NCBS = NCBS Strict.ByteString @@ -205,15 +205,15 @@ headersP = do xs <- many header else c) -hPutHeaders :: Handle -> Headers -> IO () +hPutHeaders :: HandleLike h => h -> Headers -> IO () hPutHeaders h hds = h `seq` hds `seq` - mapM_ putH (M.toList hds) >> C8.hPut h (C8.pack "\r\n") + mapM_ putH (M.toList hds) >> hPutBS h (C8.pack "\r\n") where putH :: (NCBS, Strict.ByteString) -> IO () putH (name, value) = name `seq` value `seq` - do C8.hPut h (fromNCBS name) - C8.hPut h (C8.pack ": ") - C8.hPut h value - C8.hPut h (C8.pack "\r\n") + do hPutBS h (fromNCBS name) + hPutBS h (C8.pack ": ") + hPutBS h value + hPutBS h (C8.pack "\r\n")