module Network.Salvia.Handlers.Banner (hBanner) where import Control.Monad.State import Data.Time.Clock (getCurrentTime) import Data.Time.LocalTime (getCurrentTimeZone, utcToLocalTime) import Data.Time.Format (formatTime) import System.Locale (defaultTimeLocale) import Network.Salvia.Httpd import Network.Protocol.Http -- | The 'hBanner' handler adds the current date-/timestamp and a custom server -- name to the response headers. hBanner :: String -- ^ The HTTP server name. -> Handler () hBanner server = do date <- lift $ do zone <- getCurrentTimeZone time <- liftM (utcToLocalTime zone) getCurrentTime return $ formatTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z" time modResponse $ setDate date . setServer server