1 module Network.HTTP.Lucu.Httpd
2 ( runHttpd -- Config -> ResTree -> IO ()
6 import Control.Concurrent
7 import Control.Concurrent.STM
8 import qualified Data.ByteString.Lazy.Char8 as B
9 import Data.ByteString.Lazy.Char8 (ByteString)
11 import Network.HTTP.Lucu.Config
12 import Network.HTTP.Lucu.Interaction
13 import Network.HTTP.Lucu.RequestReader
14 import Network.HTTP.Lucu.Resource
15 import Network.HTTP.Lucu.ResponseWriter
19 runHttpd :: Config -> ResTree -> IO ()
22 do so <- listenOn (cnfServerPort cnf)
25 loop :: Socket -> IO ()
27 = do (h, host, _) <- accept so
28 tQueue <- newInteractionQueue
29 readerTID <- forkIO $ requestReader cnf table h host tQueue
30 writerTID <- forkIO $ responseWriter h tQueue readerTID