salvia-0.0.4: src/Network/Salvia/Handlers/Default.hs
module Network.Salvia.Handlers.Default (hDefault) where
import System.IO
import Control.Concurrent.STM
import Network.Salvia.Handlers.Banner
import Network.Salvia.Handlers.Counter
import Network.Salvia.Handlers.Error
import Network.Salvia.Handlers.Head
import Network.Salvia.Handlers.Log
import Network.Salvia.Handlers.Parser
import Network.Salvia.Handlers.Printer
import Network.Salvia.Handlers.Session
import Network.Salvia.Httpd
import Network.Protocol.Http
hDefault :: TVar Int -> Sessions a -> SessionHandler a () -> Handler ()
hDefault count sessions handler = do
hBanner "salvia-httpd"
hParser onerror
$ hHead $ do
session <- hSession sessions 300
handler session
hPrinter
hLog count stdout
hCounter count
where
onerror err = do
hError BadRequest
sendStrLn []
sendStrLn err