Instate a timeout for proxied requests

This commit is contained in:
Michael Snoyman 2012-12-25 16:00:59 +02:00
parent a3ca024d1e
commit fe88be19dd
2 changed files with 7 additions and 4 deletions

View File

@ -75,7 +75,7 @@ import Data.Conduit.Network (HostPreference (HostIPv4
import Network (withSocketsDo) import Network (withSocketsDo)
import Network.HTTP.Conduit (def, newManager) import Network.HTTP.Conduit (def, newManager)
import Network.HTTP.ReverseProxy (ProxyDest (ProxyDest), import Network.HTTP.ReverseProxy (ProxyDest (ProxyDest),
waiProxyTo) waiProxyToSettings, wpsTimeout, wpsOnExc)
import Network.HTTP.Types (status200) import Network.HTTP.Types (status200)
import Network.Socket (sClose) import Network.Socket (sClose)
import Network.Wai (responseLBS) import Network.Wai (responseLBS)
@ -120,9 +120,12 @@ reverseProxy :: DevelOpts -> Int -> IO ()
reverseProxy opts appPort = do reverseProxy opts appPort = do
manager <- newManager def manager <- newManager def
let loop = forever $ do let loop = forever $ do
run (develPort opts) $ waiProxyTo run (develPort opts) $ waiProxyToSettings
(const $ return $ Right $ ProxyDest "127.0.0.1" appPort) (const $ return $ Right $ ProxyDest "127.0.0.1" appPort)
onExc def
{ wpsOnExc = onExc
, wpsTimeout = Just 2000000
}
manager manager
putStrLn "Reverse proxy stopped, but it shouldn't" putStrLn "Reverse proxy stopped, but it shouldn't"
threadDelay 1000000 threadDelay 1000000

View File

@ -105,7 +105,7 @@ executable yesod
, resourcet >= 0.3 && < 0.5 , resourcet >= 0.3 && < 0.5
, base64-bytestring , base64-bytestring
, lifted-base , lifted-base
, http-reverse-proxy >= 0.1.0.4 , http-reverse-proxy >= 0.1.1
, network , network
, http-conduit , http-conduit
, network-conduit , network-conduit