{-# LANGUAGE OverloadedStrings #-}
module Snap.Http.Server.Types
( ServerConfig
, PerSessionData
, emptyServerConfig
, getDefaultTimeout
, getIsSecure
, getLocalHostname
, getLogAccess
, getLogError
, getNumAcceptLoops
, getOnDataFinished
, getOnEscape
, getOnException
, getOnNewRequest
, getOnParse
, getOnUserHandlerFinished
, setDefaultTimeout
, setIsSecure
, setLocalHostname
, setLogAccess
, setLogError
, setNumAcceptLoops
, setOnDataFinished
, setOnEscape
, setOnException
, setOnNewRequest
, setOnParse
, setOnUserHandlerFinished
, getTwiddleTimeout
, isNewConnection
, getLocalAddress
, getLocalPort
, getRemoteAddress
, getRemotePort
, DataFinishedHook
, EscapeSnapHook
, ExceptionHook
, ParseHook
, NewRequestHook
, UserHandlerFinishedHook
, SendFileHandler
, ServerHandler
, AcceptFunc
, SocketConfig(..)
) where
import Data.ByteString (ByteString)
import Data.IORef (readIORef)
import Data.Word (Word64)
import Data.ByteString.Builder (Builder)
import Snap.Core (Request, Response)
import Snap.Internal.Http.Server.Types (AcceptFunc, DataFinishedHook, EscapeSnapHook, ExceptionHook, NewRequestHook, ParseHook, PerSessionData (_isNewConnection, _localAddress, _localPort, _remoteAddress, _remotePort, _twiddleTimeout), SendFileHandler, ServerConfig (..), ServerHandler, SocketConfig (..), UserHandlerFinishedHook)
emptyServerConfig :: ServerConfig a
emptyServerConfig :: ServerConfig a
emptyServerConfig =
(Request -> Response -> Word64 -> IO ())
-> (Builder -> IO ())
-> NewRequestHook a
-> ParseHook a
-> UserHandlerFinishedHook a
-> UserHandlerFinishedHook a
-> ExceptionHook a
-> EscapeSnapHook a
-> ByteString
-> Int
-> Bool
-> Int
-> ServerConfig a
forall hookState.
(Request -> Response -> Word64 -> IO ())
-> (Builder -> IO ())
-> NewRequestHook hookState
-> ParseHook hookState
-> UserHandlerFinishedHook hookState
-> UserHandlerFinishedHook hookState
-> ExceptionHook hookState
-> EscapeSnapHook hookState
-> ByteString
-> Int
-> Bool
-> Int
-> ServerConfig hookState
ServerConfig (\_ _ _ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ -> a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (a -> IO a) -> a -> IO a
forall a b. (a -> b) -> a -> b
$ [Char] -> a
forall a. HasCallStack => [Char] -> a
error "undefined hook state")
(\_ _ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ _ _ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ _ _ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ _ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
(\_ -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$! ())
"localhost"
30
Bool
False
1
getLogAccess :: ServerConfig hookState -> Request -> Response -> Word64 -> IO ()
getLogAccess :: ServerConfig hookState -> Request -> Response -> Word64 -> IO ()
getLogAccess sc :: ServerConfig hookState
sc = ServerConfig hookState -> Request -> Response -> Word64 -> IO ()
forall hookState.
ServerConfig hookState -> Request -> Response -> Word64 -> IO ()
_logAccess ServerConfig hookState
sc
getLogError :: ServerConfig hookState -> Builder -> IO ()
getLogError :: ServerConfig hookState -> Builder -> IO ()
getLogError sc :: ServerConfig hookState
sc = ServerConfig hookState -> Builder -> IO ()
forall hookState. ServerConfig hookState -> Builder -> IO ()
_logError ServerConfig hookState
sc
getOnNewRequest :: ServerConfig hookState -> NewRequestHook hookState
getOnNewRequest :: ServerConfig hookState -> NewRequestHook hookState
getOnNewRequest sc :: ServerConfig hookState
sc = ServerConfig hookState -> NewRequestHook hookState
forall hookState.
ServerConfig hookState -> NewRequestHook hookState
_onNewRequest ServerConfig hookState
sc
getOnParse :: ServerConfig hookState -> ParseHook hookState
getOnParse :: ServerConfig hookState -> ParseHook hookState
getOnParse sc :: ServerConfig hookState
sc = ServerConfig hookState -> ParseHook hookState
forall hookState. ServerConfig hookState -> ParseHook hookState
_onParse ServerConfig hookState
sc
getOnUserHandlerFinished :: ServerConfig hookState
-> UserHandlerFinishedHook hookState
getOnUserHandlerFinished :: ServerConfig hookState -> UserHandlerFinishedHook hookState
getOnUserHandlerFinished sc :: ServerConfig hookState
sc = ServerConfig hookState -> UserHandlerFinishedHook hookState
forall hookState.
ServerConfig hookState -> UserHandlerFinishedHook hookState
_onUserHandlerFinished ServerConfig hookState
sc
getOnDataFinished :: ServerConfig hookState -> DataFinishedHook hookState
getOnDataFinished :: ServerConfig hookState -> DataFinishedHook hookState
getOnDataFinished sc :: ServerConfig hookState
sc = ServerConfig hookState -> DataFinishedHook hookState
forall hookState.
ServerConfig hookState -> UserHandlerFinishedHook hookState
_onDataFinished ServerConfig hookState
sc
getOnException :: ServerConfig hookState -> ExceptionHook hookState
getOnException :: ServerConfig hookState -> ExceptionHook hookState
getOnException sc :: ServerConfig hookState
sc = ServerConfig hookState -> ExceptionHook hookState
forall hookState. ServerConfig hookState -> ExceptionHook hookState
_onException ServerConfig hookState
sc
getOnEscape :: ServerConfig hookState -> EscapeSnapHook hookState
getOnEscape :: ServerConfig hookState -> EscapeSnapHook hookState
getOnEscape sc :: ServerConfig hookState
sc = ServerConfig hookState -> EscapeSnapHook hookState
forall hookState.
ServerConfig hookState -> EscapeSnapHook hookState
_onEscape ServerConfig hookState
sc
getLocalHostname :: ServerConfig hookState -> ByteString
getLocalHostname :: ServerConfig hookState -> ByteString
getLocalHostname sc :: ServerConfig hookState
sc = ServerConfig hookState -> ByteString
forall hookState. ServerConfig hookState -> ByteString
_localHostname ServerConfig hookState
sc
getDefaultTimeout :: ServerConfig hookState -> Int
getDefaultTimeout :: ServerConfig hookState -> Int
getDefaultTimeout sc :: ServerConfig hookState
sc = ServerConfig hookState -> Int
forall hookState. ServerConfig hookState -> Int
_defaultTimeout ServerConfig hookState
sc
getIsSecure :: ServerConfig hookState -> Bool
getIsSecure :: ServerConfig hookState -> Bool
getIsSecure sc :: ServerConfig hookState
sc = ServerConfig hookState -> Bool
forall hookState. ServerConfig hookState -> Bool
_isSecure ServerConfig hookState
sc
getNumAcceptLoops :: ServerConfig hookState -> Int
getNumAcceptLoops :: ServerConfig hookState -> Int
getNumAcceptLoops sc :: ServerConfig hookState
sc = ServerConfig hookState -> Int
forall hookState. ServerConfig hookState -> Int
_numAcceptLoops ServerConfig hookState
sc
setLogAccess :: (Request -> Response -> Word64 -> IO ())
-> ServerConfig hookState
-> ServerConfig hookState
setLogAccess :: (Request -> Response -> Word64 -> IO ())
-> ServerConfig hookState -> ServerConfig hookState
setLogAccess s :: Request -> Response -> Word64 -> IO ()
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _logAccess :: Request -> Response -> Word64 -> IO ()
_logAccess = Request -> Response -> Word64 -> IO ()
s }
setLogError :: (Builder -> IO ())
-> ServerConfig hookState
-> ServerConfig hookState
setLogError :: (Builder -> IO ())
-> ServerConfig hookState -> ServerConfig hookState
setLogError s :: Builder -> IO ()
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _logError :: Builder -> IO ()
_logError = Builder -> IO ()
s }
setOnNewRequest :: NewRequestHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnNewRequest :: NewRequestHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnNewRequest s :: NewRequestHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onNewRequest :: NewRequestHook hookState
_onNewRequest = NewRequestHook hookState
s }
setOnParse :: ParseHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnParse :: ParseHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnParse s :: ParseHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onParse :: ParseHook hookState
_onParse = ParseHook hookState
s }
setOnUserHandlerFinished :: UserHandlerFinishedHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnUserHandlerFinished :: UserHandlerFinishedHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnUserHandlerFinished s :: UserHandlerFinishedHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onUserHandlerFinished :: UserHandlerFinishedHook hookState
_onUserHandlerFinished = UserHandlerFinishedHook hookState
s }
setOnDataFinished :: DataFinishedHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnDataFinished :: DataFinishedHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnDataFinished s :: DataFinishedHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onDataFinished :: DataFinishedHook hookState
_onDataFinished = DataFinishedHook hookState
s }
setOnException :: ExceptionHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnException :: ExceptionHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnException s :: ExceptionHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onException :: ExceptionHook hookState
_onException = ExceptionHook hookState
s }
setOnEscape :: EscapeSnapHook hookState
-> ServerConfig hookState
-> ServerConfig hookState
setOnEscape :: EscapeSnapHook hookState
-> ServerConfig hookState -> ServerConfig hookState
setOnEscape s :: EscapeSnapHook hookState
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _onEscape :: EscapeSnapHook hookState
_onEscape = EscapeSnapHook hookState
s }
setLocalHostname :: ByteString
-> ServerConfig hookState
-> ServerConfig hookState
setLocalHostname :: ByteString -> ServerConfig hookState -> ServerConfig hookState
setLocalHostname s :: ByteString
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _localHostname :: ByteString
_localHostname = ByteString
s }
setDefaultTimeout :: Int -> ServerConfig hookState -> ServerConfig hookState
setDefaultTimeout :: Int -> ServerConfig hookState -> ServerConfig hookState
setDefaultTimeout s :: Int
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _defaultTimeout :: Int
_defaultTimeout = Int
s }
setIsSecure :: Bool -> ServerConfig hookState -> ServerConfig hookState
setIsSecure :: Bool -> ServerConfig hookState -> ServerConfig hookState
setIsSecure s :: Bool
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _isSecure :: Bool
_isSecure = Bool
s }
setNumAcceptLoops :: Int -> ServerConfig hookState -> ServerConfig hookState
setNumAcceptLoops :: Int -> ServerConfig hookState -> ServerConfig hookState
setNumAcceptLoops s :: Int
s sc :: ServerConfig hookState
sc = ServerConfig hookState
sc { _numAcceptLoops :: Int
_numAcceptLoops = Int
s }
getTwiddleTimeout :: PerSessionData -> ((Int -> Int) -> IO ())
getTwiddleTimeout :: PerSessionData -> (Int -> Int) -> IO ()
getTwiddleTimeout psd :: PerSessionData
psd = PerSessionData -> (Int -> Int) -> IO ()
_twiddleTimeout PerSessionData
psd
isNewConnection :: PerSessionData -> IO Bool
isNewConnection :: PerSessionData -> IO Bool
isNewConnection = IORef Bool -> IO Bool
forall a. IORef a -> IO a
readIORef (IORef Bool -> IO Bool)
-> (PerSessionData -> IORef Bool) -> PerSessionData -> IO Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PerSessionData -> IORef Bool
_isNewConnection
getLocalAddress :: PerSessionData -> ByteString
getLocalAddress :: PerSessionData -> ByteString
getLocalAddress psd :: PerSessionData
psd = PerSessionData -> ByteString
_localAddress PerSessionData
psd
getLocalPort :: PerSessionData -> Int
getLocalPort :: PerSessionData -> Int
getLocalPort psd :: PerSessionData
psd = PerSessionData -> Int
_localPort PerSessionData
psd
getRemoteAddress :: PerSessionData -> ByteString
getRemoteAddress :: PerSessionData -> ByteString
getRemoteAddress psd :: PerSessionData
psd = PerSessionData -> ByteString
_remoteAddress PerSessionData
psd
getRemotePort :: PerSessionData -> Int
getRemotePort :: PerSessionData -> Int
getRemotePort psd :: PerSessionData
psd = PerSessionData -> Int
_remotePort PerSessionData
psd