getCurrentTime only called when using sessions

This commit is contained in:
Michael Snoyman 2011-03-31 18:06:47 +02:00
parent 33db6ced91
commit b9e0a0d532

View File

@ -232,15 +232,16 @@ defaultYesodRunner :: Yesod master
-> GHandler a master ChooseRep
-> W.Application
defaultYesodRunner s master toMasterRoute mkey murl handler req = do
now <- liftIO getCurrentTime
let getExpires m = fromIntegral (m * 60) `addUTCTime` now
let exp' = getExpires $ clientSessionDuration master
let rh = takeWhile (/= ':') $ show $ W.remoteHost req
let host = if sessionIpAddress master then S8.pack rh else ""
let session' =
case mkey of
Nothing -> []
Just key -> fromMaybe [] $ do
session' <-
case mkey of
Nothing -> return []
Just key -> do
now <- liftIO getCurrentTime
return $ fromMaybe [] $ do
raw <- lookup "Cookie" $ W.requestHeaders req
val <- lookup sessionName $ parseCookies raw
decodeSession key now host val