snap-server-0.1.1: src/Snap/Http/Server.hs
-- | The Snap HTTP server is a high performance, epoll-enabled, iteratee-based
-- web server library written in Haskell. Together with the @snap-core@ library
-- upon which it depends, it provides a clean and efficient Haskell programming
-- interface to the HTTP protocol.
module Snap.Http.Server
(
httpServe
) where
import Data.ByteString (ByteString)
import Snap.Types
import qualified Snap.Internal.Http.Server as Int
-- | Starts serving HTTP requests on the given port using the given handler.
-- This function never returns; to shut down the HTTP server, kill the
-- controlling thread.
httpServe :: ByteString -- ^ bind address, or \"*\" for all
-> Int -- ^ port to bind to
-> ByteString -- ^ local hostname (server name)
-> Maybe FilePath -- ^ path to the (optional) access log
-> Maybe FilePath -- ^ path to the (optional) error log
-> Snap () -- ^ handler procedure
-> IO ()
httpServe bindAddress bindPort localHostname alog elog handler =
Int.httpServe bindAddress bindPort localHostname alog elog handler'
where
handler' = runSnap handler