From 1f704e914d1d32132863b79093a3cdef00c6540d Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 10 Jun 2014 13:59:35 +0300 Subject: [PATCH] Fixes for WAI 2.1 --- yesod-core/Yesod/Core/Internal/Run.hs | 5 +++-- yesod-core/yesod-core.cabal | 2 +- yesod-websockets/Yesod/WebSockets.hs | 8 +++++++- yesod-websockets/yesod-websockets.cabal | 6 +++++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/yesod-core/Yesod/Core/Internal/Run.hs b/yesod-core/Yesod/Core/Internal/Run.hs index 9a87f932..09b4609e 100644 --- a/yesod-core/Yesod/Core/Internal/Run.hs +++ b/yesod-core/Yesod/Core/Internal/Run.hs @@ -302,8 +302,9 @@ yesodRunner handler' YesodRunnerEnv {..} route req #if MIN_VERSION_wai(2, 0, 0) bracketOnError createInternalState closeInternalState $ \is -> do - yar <- runInternalState (runHandler rhe handler yreq) is - liftIO $ yarToResponse yar saveSession yreq req is + yreq' <- yreq + yar <- runInternalState (runHandler rhe handler yreq') is + liftIO $ yarToResponse yar saveSession yreq' req is #else yar <- runHandler rhe handler yreq liftIO $ yarToResponse yar saveSession yreq req diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index 2dd24aae..124883b9 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -1,5 +1,5 @@ name: yesod-core -version: 1.2.16 +version: 1.2.16.1 license: MIT license-file: LICENSE author: Michael Snoyman diff --git a/yesod-websockets/Yesod/WebSockets.hs b/yesod-websockets/Yesod/WebSockets.hs index ad2f5ad4..82757413 100644 --- a/yesod-websockets/Yesod/WebSockets.hs +++ b/yesod-websockets/Yesod/WebSockets.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} module Yesod.WebSockets @@ -46,7 +47,12 @@ webSockets :: (Y.MonadBaseControl IO m, Y.MonadHandler m) => WebSocketsT m () -> webSockets inner = do req <- Y.waiRequest when (WaiWS.isWebSocketsReq req) $ - Y.sendRawResponseNoConduit $ \src sink -> control $ \runInIO -> WaiWS.runWebSockets +#if MIN_VERSION_wai(3, 0, 0) + Y.sendRawResponseNoConduit +#else + Y.sendRawResponse +#endif + $ \src sink -> control $ \runInIO -> WaiWS.runWebSockets WS.defaultConnectionOptions (WaiWS.getRequestHead req) (\pconn -> do diff --git a/yesod-websockets/yesod-websockets.cabal b/yesod-websockets/yesod-websockets.cabal index 5185e45b..8708bba2 100644 --- a/yesod-websockets/yesod-websockets.cabal +++ b/yesod-websockets/yesod-websockets.cabal @@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: yesod-websockets -version: 0.1.1 +version: 0.1.1.1 synopsis: WebSockets support for Yesod description: WebSockets support for Yesod homepage: https://github.com/yesodweb/yesod @@ -17,6 +17,10 @@ cabal-version: >=1.8 library exposed-modules: Yesod.WebSockets build-depends: base >= 4.5 && < 5 + + -- Just for CPP macro + , wai + , wai-websockets >= 2.1 , websockets >= 0.8 , transformers >= 0.2