Lucu-1.0: Embedded HTTP Server



Configurations for the Lucu httpd.



data Config Source

Configuration record for to run the httpd.




cnfServerSoftware :: !Ascii

A banner string to be sent to clients with "Server" response header field.

cnfServerHost :: !(CI Text)

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 a 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 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 ways to assign separate ports to IPv4 and IPv6 server sockets (but I don't think that will be a problem.)

cnfSSLConfig :: !(Maybe SSLConfig)

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

cnfMaxPipelineDepth :: !Int

The maximum number of requests to simultaneously accept in one connection. 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 octets. Note that this is nothing but a default value used by Network.HTTP.Lucu.Resource.getForm and such when they are applied to Nothing, so there is no guarantee that this value always constrains all the requests.

cnfDumpTooLateAbortionToStderr :: !Bool

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

cnfExtToMIMEType :: !ExtMap

A mapping table from file extensions to MIME Types. 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 might be a good idea but that's not implemented (yet).


Default Config

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.

data SSLConfig Source

Configuration record for HTTPS connections.




sslServerPort :: !ServiceName

A port number (or a service name) 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. You must set it up yourself with at least a server certification.