X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FConfig.hs;h=847b737ad200e0ef42a7740e608eed5caba9207d;hp=d2b0f60eea84a8adf33946df02163285f54e1e53;hb=05375cbaf2dda1e8146f6cdbbd635e59de54a732;hpb=f504167b85561373b4c444e2d37a513e0ab504a9 diff --git a/Network/HTTP/Lucu/Config.hs b/Network/HTTP/Lucu/Config.hs index d2b0f60..847b737 100644 --- a/Network/HTTP/Lucu/Config.hs +++ b/Network/HTTP/Lucu/Config.hs @@ -29,6 +29,18 @@ data Config = Config { -- |A port ID to listen to HTTP clients. , cnfServerPort :: !PortID + -- |Local IPv4 address to listen to HTTP clients. Set this to + -- @('Just' "0.0.0.0")@ if you want to accept any IPv4 + -- connections. Set this to 'Nothing' to disable IPv4. + , cnfServerV4Addr :: !(Maybe HostName) + + -- |Local IPv6 address to listen to HTTP 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. + , cnfServerV6Addr :: !(Maybe HostName) + -- |Configuration for HTTPS connections. Set this 'Nothing' to -- disable HTTPS. , cnfSSLConfig :: !(Maybe SSLConfig) @@ -73,8 +85,11 @@ data Config = Config { -- |Configuration record for HTTPS connections. data SSLConfig = SSLConfig { - -- |A port ID to listen to HTTPS clients. + -- |A port ID to listen to HTTPS clients. Local addresses + -- (both for IPv4 and IPv6) will be derived from the parent + -- 'Config'. sslServerPort :: !PortID + -- |An SSL context for accepting connections. , sslContext :: !SSLContext } @@ -87,6 +102,8 @@ defaultConfig = Config { cnfServerSoftware = C8.pack "Lucu/1.0" , cnfServerHost = C8.pack (unsafePerformIO getHostName) , cnfServerPort = Service "http" + , cnfServerV4Addr = Just "0.0.0.0" + , cnfServerV6Addr = Just "::" , cnfSSLConfig = Nothing , cnfMaxPipelineDepth = 100 , cnfMaxEntityLength = 16 * 1024 * 1024 -- 16 MiB