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
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")