module Network.Salvia.Handlers {- todo doc - client/server assumptions -} ( -- * Fundamental protocol handlers. -- ** Default handler environments. hDefaultEnv , hEnvNoKeepAlive -- ** Parse client requests. , hRequestParser , hResponseParser , hParser , readNonEmptyLines -- ** Print server responses. , hResponsePrinter , hRequestPrinter , hFlushHeaders , hFlushHeadersOnly , hFlushRequestHeaders , hFlushResponseHeaders , hFlushQueue -- ** Accessing request and response bodies. , hRawRequestBody , hRawResponseBody , hRawBody , hRequestBodyText , hResponseBodyText , hBodyText , hRequestBodyStringUTF8 , hResponseBodyStringUTF8 , hBodyStringUTF8 , hRequestParameters , hResponseParameters , hParameters -- ** HTTP header banner. , hBanner -- ** Closing or keeping alive connections. , hCloseConn , hKeepAlive -- ** Enable HTTP HEAD requests. , hHead -- * Error handling and logging. -- ** Default error handlers. , hError , hCustomError , hIOError , hSafeIO -- ** Logging of client requests. , hLog , hDumpRequest , hDumpResponse -- * Redirecting and rewriting. -- ** Redirecting the client. , hRedirect -- ** Request URI rewriting. , hRewrite , hRewriteHost , hRewritePath , hRewriteExt , hWithDir , hWithoutDir -- * File and directory serving. -- ** Serve static file resources. , hFileResource , hFileResourceFilter , hResource , fileMime , hUri , hFile , hFileFilter -- ** Serve directory indices. , hDirectory , hDirectoryResource -- ** Serve file system directory. , hFileTypeDispatcher , hFileSystem , hFileSystemNoIndexes -- ** Enable PUTing resources to the files ystem. , hPutFileSystem , hPutResource , hStore -- ** Support for HTTP ranges. , Range (..) , contentRange , range , rangeL -- ** Serving CGI scripts. , hCGI -- * Dispatching. -- ** Custom request dispatchers. , Dispatcher , ListDispatcher , hDispatch , hRequestDispatch , hListDispatch -- ** Dispatch based on request method. , hMethod , hMethodRouter -- ** Dispatch based on request path. , hPath , hPathRouter , hPrefix , hPrefixRouter , hQueryParameters -- ** Dispatch based on filename extension. , hExtension , hExtensionRouter -- ** Dispatch based on host name. , hVirtualHosting , hPortRouter -- * Cookie management. , hSetCookie , hCookie , hDelCookie , hNewCookie ) where -- todo: cleanup handler exports and export entire modules? import Network.Salvia.Handler.Banner import Network.Salvia.Handler.Body import Network.Salvia.Handler.CGI import Network.Salvia.Handler.Close import Network.Salvia.Handler.Cookie import Network.Salvia.Handler.Directory import Network.Salvia.Handler.Dispatching import Network.Salvia.Handler.Environment import Network.Salvia.Handler.Error import Network.Salvia.Handler.Extension import Network.Salvia.Handler.File import Network.Salvia.Handler.FileSystem import Network.Salvia.Handler.Head import Network.Salvia.Handler.Log import Network.Salvia.Handler.Method import Network.Salvia.Handler.Parser import Network.Salvia.Handler.Path import Network.Salvia.Handler.Printer import Network.Salvia.Handler.Put import Network.Salvia.Handler.Range import Network.Salvia.Handler.Redirect import Network.Salvia.Handler.Rewrite import Network.Salvia.Handler.VirtualHosting