packages feed

yesod-core 1.4.4.1 → 1.4.4.2

raw patch · 5 files changed

+19/−2 lines, 5 filesdep +auto-update

Dependencies added: auto-update

Files

Yesod/Core/Handler.hs view
@@ -694,7 +694,7 @@ -- is never (realistically) expired. neverExpires :: MonadHandler m => m () neverExpires = do-    setHeader "Expires" "Thu, 31 Dec 2037 23:55:55 GMT"+    askHandlerEnv >>= liftIO . rheGetMaxExpires >>= setHeader "Expires"     cacheSeconds oneYear   where     oneYear :: Int
Yesod/Core/Internal/Run.hs view
@@ -31,6 +31,7 @@ import           Data.Text.Encoding           (encodeUtf8) import           Data.Text.Encoding           (decodeUtf8With) import           Data.Text.Encoding.Error     (lenientDecode)+import           Data.Time                    (getCurrentTime, addUTCTime) import           Language.Haskell.TH.Syntax   (Loc, qLocation) import qualified Network.HTTP.Types           as H import           Network.Wai@@ -45,9 +46,11 @@ import           Yesod.Core.Types import           Yesod.Core.Internal.Request  (parseWaiRequest,                                                tooLargeResponse)+import           Yesod.Core.Internal.Util     (formatRFC1123) import           Yesod.Routes.Class           (Route, renderRoute) import Control.DeepSeq (($!!), NFData) import Control.Monad (liftM)+import Control.AutoUpdate (mkAutoUpdate, defaultUpdateSettings, updateAction, updateFreq)  returnDeepSessionMap :: Monad m => SessionMap -> m SessionMap #if MIN_VERSION_bytestring(0, 10, 0)@@ -194,6 +197,7 @@                -> m (Either ErrorResponse a) runFakeHandler fakeSessionMap logger site handler = liftIO $ do   ret <- I.newIORef (Left $ InternalError "runFakeHandler: no result")+  getMaxExpires <- getGetMaxExpires   let handler' = do liftIO . I.writeIORef ret . Right =<< handler                     return ()   let yapp = runHandler@@ -204,6 +208,7 @@             , rheUpload = fileUpload site             , rheLog = messageLoggerSource site $ logger site             , rheOnError = errHandler+            , rheGetMaxExpires = getMaxExpires             }         handler'       errHandler err req = do@@ -255,6 +260,7 @@     let dontSaveSession _ = return []     (session, saveSession) <- liftIO $ do         maybe (return (Map.empty, dontSaveSession)) (\sb -> sbLoadSession sb req) yreSessionBackend+    getMaxExpires <- getGetMaxExpires     let mkYesodReq = parseWaiRequest req session (isJust yreSessionBackend) mmaxLen     let yreq =             case mkYesodReq of@@ -273,6 +279,7 @@             , rheUpload = fileUpload yreSite             , rheLog = log'             , rheOnError = safeEh log'+            , rheGetMaxExpires = getMaxExpires             }         rhe = rheSafe             { rheOnError = runHandler rheSafe . errorHandler@@ -285,6 +292,12 @@   where     mmaxLen = maximumContentLength yreSite route     handler = yesodMiddleware handler'++getGetMaxExpires :: MonadIO m => m (IO Text)+getGetMaxExpires = liftIO $ mkAutoUpdate defaultUpdateSettings+  { updateAction = liftM (formatRFC1123 . addUTCTime (60*60*24*365)) getCurrentTime+  , updateFreq = 60 * 60 * 1000000 -- ^ Update once per hour+  }  yesodRender :: Yesod y             => y
Yesod/Core/Types.hs view
@@ -177,6 +177,7 @@     , rheUpload   :: !(RequestBodyLength -> FileUpload)     , rheLog      :: !(Loc -> LogSource -> LogLevel -> LogStr -> IO ())     , rheOnError  :: !(ErrorResponse -> YesodApp)+    , rheGetMaxExpires :: IO Text       -- ^ How to respond when an error is thrown internally.       --       -- Since 1.2.0
changelog.md view
@@ -1,3 +1,5 @@+__1.4.4.2__ `neverExpires` uses dates one year in the future (instead of in 2037).+ __1.4.4.1__ Improvements to etag/if-none-match support #868 #869  __1.4.4__ Add the `notModified` and `setEtag` functions.
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.4.4.1+version:         1.4.4.2 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -69,6 +69,7 @@                    , mwc-random                    , primitive                    , word8+                   , auto-update      exposed-modules: Yesod.Core                      Yesod.Core.Content