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