Lucu-0.1: HTTP Daemonic Library



Configurations for the Lucu httpd like a port to listen.



data Config Source

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




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 :: !PortID

A port ID to listen to HTTP clients.

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 ( instead of vanilla FS.

defaultConfig :: ConfigSource

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