]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Httpd.hs
hlint
[Lucu.git] / Network / HTTP / Lucu / Httpd.hs
index c8a21b7d256d8c0d7128205c18e747dd0b52246f..c127250d9ededf0a1770c43a6e3d3097e937232c 100644 (file)
@@ -1,5 +1,6 @@
 {-# LANGUAGE
-    UnicodeSyntax
+    CPP
+  , UnicodeSyntax
   #-}
 -- |The entry point of Lucu httpd.
 module Network.HTTP.Lucu.Httpd
@@ -20,6 +21,7 @@ import Network.HTTP.Lucu.RequestReader
 import Network.HTTP.Lucu.Resource.Tree
 import Network.HTTP.Lucu.ResponseWriter
 import Network.HTTP.Lucu.SocketLike as SL
+import Prelude.Unicode
 
 -- |This is the entry point of Lucu httpd. It listens to a socket and
 -- waits for clients. 'runHttpd' never stops by itself so the only way
@@ -28,6 +30,7 @@ import Network.HTTP.Lucu.SocketLike as SL
 -- Example:
 --
 -- > {-# LANGUAGE OverloadedStrings #-}
+-- > {-# LANGUAGE QuasiQuotes #-}
 -- > module Main where
 -- > import Network.HTTP.Lucu
 -- > 
@@ -40,7 +43,7 @@ import Network.HTTP.Lucu.SocketLike as SL
 -- > helloWorld :: ResourceDef
 -- > helloWorld = emptyResource {
 -- >                resGet
--- >                  = Just $ do setContentType $ parseMIMEType "text/plain"
+-- >                  = Just $ do setContentType [mimeType| text/plain |]
 -- >                              putChunk "Hello, world!"
 -- >              }
 runHttpd ∷ Config → ResTree → [FallbackHandler] → IO ()
@@ -48,7 +51,14 @@ runHttpd cnf tree fbs
     = withSocketsDo $
       do let launchers
                  = catMaybes
-                   [ do scnf ← cnfSSLConfig    cnf
+                   [ do addr ← cnfServerV4Addr cnf
+                        return ( launchListener =≪ listenOn AF_INET addr (cnfServerPort cnf)
+                               )
+                   , do addr ← cnfServerV6Addr cnf
+                        return ( launchListener =≪ listenOn AF_INET6 addr (cnfServerPort cnf)
+                               )
+#if defined(HAVE_SSL)
+                   , do scnf ← cnfSSLConfig    cnf
                         addr ← cnfServerV4Addr cnf
                         return ( do so ← listenOn AF_INET addr (sslServerPort scnf)
                                     launchListener (sslContext scnf, so)
@@ -58,12 +68,7 @@ runHttpd cnf tree fbs
                         return ( do so ← listenOn AF_INET6 addr (sslServerPort scnf)
                                     launchListener (sslContext scnf, so)
                                )
-                   , do addr ← cnfServerV4Addr cnf
-                        return ( launchListener =≪ listenOn AF_INET addr (cnfServerPort cnf)
-                               )
-                   , do addr ← cnfServerV6Addr cnf
-                        return ( launchListener =≪ listenOn AF_INET6 addr (cnfServerPort cnf)
-                               )
+#endif
                    ]
          sequence_ launchers
          waitForever
@@ -72,8 +77,8 @@ runHttpd cnf tree fbs
       launchListener so
           = do p ← SL.socketPort so
                -- FIXME: Don't throw away the thread ID as we can't
-               -- kill it later then. [1]
-               void $ forkIO $ httpLoop p so
+               -- kill it later then.
+               void  forkIO $ httpLoop p so
 
       listenOn ∷ Family → HostName → ServiceName → IO Socket
       listenOn fam host srv