This is the entry point of Lucu httpd. It listens to a socket and
waits for clients. Computation of runHttpd never stops by itself
so the only way to stop it is to raise an exception in the thread
computing it.
Note that runHttpd automatically makes SIGPIPE be ignored by
computing installHandler
sigPIPE Ignore
Nothing. This can hardly cause a problem but it may do.
Example:
module Main where
import Network.HTTP.Lucu
main :: IO ()
main = let config = defaultConfig
resources = mkResTree [ ([], helloWorld) ]
in
runHttpd config resourcees []
helloWorld :: ResourceDef
helloWorld = ResourceDef {
resUsesNativeThread = False
, resIsGreedy = False
, resGet
= Just $ do setContentType $ read "text/plain"
output "Hello, world!"
, resHead = Nothing
, resPost = Nothing
, resPut = Nothing
, resDelete = Nothing
}
|