- , cnfServerHost :: HostName
- -- |A port ID to listen to HTTP clients.
- , cnfServerPort :: PortID
- -- |The maximum number of requests to accept in one connection
- -- simultaneously. If a client exceeds this limitation, its last
+ , cnfServerHost ∷ !Text
+
+ -- |A port number (or a service name) to listen to HTTP clients.
+ , cnfServerPort ∷ !ServiceName
+
+ -- |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.
+ , cnfServerV4Addr ∷ !(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.)
+ , cnfServerV6Addr ∷ !(Maybe HostName)
+
+#if defined(HAVE_SSL)
+ -- |Configuration for HTTPS connections. Set this 'Nothing' to
+ -- disable HTTPS.
+ , cnfSSLConfig ∷ !(Maybe SSLConfig)
+#endif
+
+ -- |The maximum number of requests to simultaneously accept in one
+ -- connection. If a client exceeds this limitation, its last