From b9e0a0d532e8d70f3b81d714a956af08aec56aed Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 31 Mar 2011 18:06:47 +0200 Subject: [PATCH] getCurrentTime only called when using sessions --- Yesod/Core.hs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Yesod/Core.hs b/Yesod/Core.hs index 7bb97a76..36dd747e 100644 --- a/Yesod/Core.hs +++ b/Yesod/Core.hs @@ -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