]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Config.hs
Added a configuration flag -fssl to enable SSL support. (default: off)
[Lucu.git] / Network / HTTP / Lucu / Config.hs
index 68bc365ade7c2d950d2949b70c3a13d0b74ca144..7549ae5c0e07d33886b6cb5ed64b741f45ecde7f 100644 (file)
@@ -1,11 +1,14 @@
 {-# LANGUAGE
-    OverloadedStrings
+    CPP
+  , OverloadedStrings
   , UnicodeSyntax
   #-}
 -- |Configurations for the Lucu httpd.
 module Network.HTTP.Lucu.Config
     ( Config(..)
+#if defined(HAVE_SSL)
     , SSLConfig(..)
+#endif
     , defaultConfig
     )
     where
@@ -16,7 +19,9 @@ import Network
 import Network.BSD
 import Network.HTTP.Lucu.MIMEType.Guess
 import Network.HTTP.Lucu.MIMEType.DefaultExtensionMap
+#if defined(HAVE_SSL)
 import OpenSSL.Session
+#endif
 import System.IO.Unsafe
 
 -- |Configuration record for to run the httpd.
@@ -46,9 +51,11 @@ data Config = Config {
     -- 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
@@ -59,9 +66,8 @@ data Config = Config {
     -- |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 'Network.HTTP.Lucu.Resource.defaultLimit', so there
-    -- is no guarantee that this value always constrains all the
-    -- requests.
+    -- applied to 'Nothing', so there is no guarantee that this value
+    -- always constrains all the requests.
     , cnfMaxEntityLength ∷ !Int
 
     -- |Whether to dump too late abortions to the stderr or not. See
@@ -78,6 +84,7 @@ data Config = Config {
     , cnfExtToMIMEType ∷ !ExtMap
     }
 
+#if defined(HAVE_SSL)
 -- |Configuration record for HTTPS connections.
 data SSLConfig
     = SSLConfig {
@@ -90,6 +97,7 @@ data SSLConfig
         -- up yourself with at least a server certification.
       , sslContext ∷ !SSLContext
       }
+#endif
 
 -- |The default configuration. Generally you can use this value as-is,
 -- or possibly you just want to replace the 'cnfServerSoftware' and
@@ -101,7 +109,9 @@ defaultConfig = Config {
                 , cnfServerPort                  = "http"
                 , cnfServerV4Addr                = Just "0.0.0.0"
                 , cnfServerV6Addr                = Just "::"
+#if defined(HAVE_SSL)
                 , cnfSSLConfig                   = Nothing
+#endif
                 , cnfMaxPipelineDepth            = 100
                 , cnfMaxEntityLength             = 16 * 1024 * 1024 -- 16 MiB
                 , cnfDumpTooLateAbortionToStderr = True