Safe Haskell | None |
---|
Snap.Http.Server.Config
Description
This module exports the Config
datatype, which you can use to configure the
Snap HTTP server.
- data Config m a
- data ConfigBackend
- data ConfigLog
- = ConfigNoLog
- | ConfigFileLog FilePath
- | ConfigIoLog (ByteString -> IO ())
- emptyConfig :: Config m a
- defaultConfig :: MonadSnap m => Config m a
- commandLineConfig :: MonadSnap m => Config m a -> IO (Config m a)
- completeConfig :: MonadSnap m => Config m a -> IO (Config m a)
- optDescrs :: MonadSnap m => Config m a -> [OptDescr (Maybe (Config m a))]
- getAccessLog :: Config m a -> Maybe ConfigLog
- getBackend :: Config m a -> Maybe ConfigBackend
- getBind :: Config m a -> Maybe ByteString
- getCompression :: Config m a -> Maybe Bool
- getDefaultTimeout :: Config m a -> Maybe Int
- getErrorHandler :: Config m a -> Maybe (SomeException -> m ())
- getErrorLog :: Config m a -> Maybe ConfigLog
- getHostname :: Config m a -> Maybe ByteString
- getLocale :: Config m a -> Maybe String
- getOther :: Config m a -> Maybe a
- getPort :: Config m a -> Maybe Int
- getProxyType :: Config m a -> Maybe ProxyType
- getSSLBind :: Config m a -> Maybe ByteString
- getSSLCert :: Config m a -> Maybe FilePath
- getSSLKey :: Config m a -> Maybe FilePath
- getSSLPort :: Config m a -> Maybe Int
- getVerbose :: Config m a -> Maybe Bool
- setAccessLog :: ConfigLog -> Config m a -> Config m a
- setBackend :: ConfigBackend -> Config m a -> Config m a
- setBind :: ByteString -> Config m a -> Config m a
- setCompression :: Bool -> Config m a -> Config m a
- setDefaultTimeout :: Int -> Config m a -> Config m a
- setErrorHandler :: (SomeException -> m ()) -> Config m a -> Config m a
- setErrorLog :: ConfigLog -> Config m a -> Config m a
- setHostname :: ByteString -> Config m a -> Config m a
- setLocale :: String -> Config m a -> Config m a
- setOther :: a -> Config m a -> Config m a
- setPort :: Int -> Config m a -> Config m a
- setProxyType :: ProxyType -> Config m a -> Config m a
- setSSLBind :: ByteString -> Config m a -> Config m a
- setSSLCert :: FilePath -> Config m a -> Config m a
- setSSLKey :: FilePath -> Config m a -> Config m a
- setSSLPort :: Int -> Config m a -> Config m a
- setVerbose :: Bool -> Config m a -> Config m a
Documentation
A record type which represents partial configurations (for httpServe
)
by wrapping all of its fields in a Maybe
. Values of this type are usually
constructed via its Monoid
instance by doing something like:
setPort 1234 mempty
Any fields which are unspecified in the Config
passed to httpServe
(and
this is the norm) are filled in with default values from defaultConfig
.
data ConfigBackend Source
This datatype allows you to override which backend (either simple or libev) to use. Most users will not want to set this, preferring to rely on the compile-type default.
Note that if you specify the libev backend and have not compiled in support for it, your server will fail at runtime.
Constructors
ConfigSimpleBackend | |
ConfigLibEvBackend |
Instances
Data type representing the configuration of a logging target
Constructors
ConfigNoLog | no logging |
ConfigFileLog FilePath | log to text file |
ConfigIoLog (ByteString -> IO ()) | log custom IO handler |
emptyConfig :: Config m aSource
defaultConfig :: MonadSnap m => Config m aSource
These are the default values for the options
Arguments
:: MonadSnap m | |
=> Config m a | default configuration. This is combined with
|
-> IO (Config m a) |
Returns a Config
obtained from parsing the options specified on the
command-line.
On Unix systems, the locale is read from the LANG
environment variable.
Returns a description of the snap command line options suitable for use with System.Console.GetOpt.
getAccessLog :: Config m a -> Maybe ConfigLogSource
Path to the access log
getBackend :: Config m a -> Maybe ConfigBackendSource
getBind :: Config m a -> Maybe ByteStringSource
Returns the address to bind to (for http)
getCompression :: Config m a -> Maybe BoolSource
If set and set to True, compression is turned on when applicable
getDefaultTimeout :: Config m a -> Maybe IntSource
getErrorHandler :: Config m a -> Maybe (SomeException -> m ())Source
A MonadSnap action to handle 500 errors
getErrorLog :: Config m a -> Maybe ConfigLogSource
Path to the error log
getHostname :: Config m a -> Maybe ByteStringSource
The hostname of the HTTP server. This field has the same format as an HTTP
Host
header; if a Host
header came in with the request, we use that,
otherwise we default to this value specified in the configuration.
getLocale :: Config m a -> Maybe StringSource
Gets the locale to use. Locales are used on Unix only, to set the
LANG
/LC_ALL
/etc. environment variable. For instance if you set the
locale to "en_US
", we'll set the relevant environment variables to
"en_US.UTF-8
".
getProxyType :: Config m a -> Maybe ProxyTypeSource
getSSLBind :: Config m a -> Maybe ByteStringSource
Returns the address to bind to (for https)
getSSLCert :: Config m a -> Maybe FilePathSource
Path to the SSL certificate file
getSSLPort :: Config m a -> Maybe IntSource
Returns the port to listen on (for https)
getVerbose :: Config m a -> Maybe BoolSource
Whether to write server status updates to stderr
setAccessLog :: ConfigLog -> Config m a -> Config m aSource
setBackend :: ConfigBackend -> Config m a -> Config m aSource
setBind :: ByteString -> Config m a -> Config m aSource
setCompression :: Bool -> Config m a -> Config m aSource
setDefaultTimeout :: Int -> Config m a -> Config m aSource
setErrorHandler :: (SomeException -> m ()) -> Config m a -> Config m aSource
setErrorLog :: ConfigLog -> Config m a -> Config m aSource
setHostname :: ByteString -> Config m a -> Config m aSource
setProxyType :: ProxyType -> Config m a -> Config m aSource
setSSLBind :: ByteString -> Config m a -> Config m aSource
setSSLCert :: FilePath -> Config m a -> Config m aSource
setSSLPort :: Int -> Config m a -> Config m aSource
setVerbose :: Bool -> Config m a -> Config m aSource