Lucu-0.6: HTTP Daemonic Library

Network.HTTP.Lucu.Config

Description

Configurations for the Lucu httpd like a port to listen.

Synopsis

Documentation

data Config Source

Configuration record for the Lucu httpd. You need to use defaultConfig or setup your own configuration to run the httpd.

Constructors

Config 

Fields

cnfServerSoftware :: !ByteString

A string which will be sent to clients as "Server" field.

cnfServerHost :: !ByteString

The host name of the server. This value will be used in built-in pages like "404 Not Found".

cnfServerPort :: !ServiceName

A port number (or service name) to listen to HTTP clients.

cnfServerV4Addr :: !(Maybe HostName)

Local IPv4 address to listen to both HTTP and HTTPS clients. Set this to (Just 0.0.0.0) if you want to accept any IPv4 connections. Set this to Nothing to disable IPv4.

cnfServerV6Addr :: !(Maybe HostName)

Local IPv6 address to listen to both HTTP and HTTPS clients. Set this to (Just ::) if you want to accept any IPv6 connections. Set this to Nothing to disable IPv6. Note that there is currently no way to assign separate ports to IPv4 and IPv6 server sockets.

cnfSSLConfig :: !(Maybe SSLConfig)

Configuration for HTTPS connections. Set this Nothing to disable HTTPS.

cnfMaxPipelineDepth :: !Int

The maximum number of requests to accept in one connection simultaneously. If a client exceeds this limitation, its last request won't be processed until a response for its earliest pending request is sent back to the client.

cnfMaxEntityLength :: !Int

The maximum length of request entity to accept in bytes. Note that this is nothing but the default value which is used when Network.HTTP.Lucu.Resource.input and such like are applied to Network.HTTP.Lucu.Resource.defaultLimit, so there is no guarantee that this value always constrains all the requests.

cnfMaxOutputChunkLength :: !Int

The maximum length of chunk to output. This value is used by Network.HTTP.Lucu.Resource.output and such like to limit the chunk length so you can safely output an infinite string (like a lazy stream of /dev/random) using those actions.

cnfDumpTooLateAbortionToStderr :: !Bool

Whether to dump too late abortion to the stderr or not. See Network.HTTP.Lucu.Abortion.abort.

cnfExtToMIMEType :: !ExtMap

A mapping from extension to MIME Type. This value is used by Network.HTTP.Lucu.StaticFile.staticFile to guess the MIME Type of static files. Note that MIME Types are currently guessed only by file name.

Guessing by file magic is indeed a wonderful idea but that is not implemented (yet). But, don't you think it's better a file system got a MIME Type as a part of inode? Or it might be a good idea to use GnomeVFS (http://developer.gnome.org/doc/API/2.0/gnome-vfs-2.0/) instead of vanilla FS.

data SSLConfig Source

Configuration record for HTTPS connections.

Constructors

SSLConfig 

Fields

sslServerPort :: !ServiceName

A port ID to listen to HTTPS clients. Local addresses (both for IPv4 and IPv6) will be derived from the parent Config.

sslContext :: !SSLContext

An SSL context for accepting connections.

defaultConfig :: ConfigSource

The default configuration. Generally you can use this value as-is, or possibly you just want to replace the cnfServerSoftware and cnfServerPort. SSL connections are disabled by default.