Add a workaround for yesodweb/wai#478
This commit is contained in:
parent
288c457cfa
commit
1fb697ff0d
@ -1,3 +1,7 @@
|
|||||||
|
## 1.4.16.1
|
||||||
|
|
||||||
|
* Workaround for [wai#478](https://github.com/yesodweb/wai/issues/478)
|
||||||
|
|
||||||
## 1.4.16
|
## 1.4.16
|
||||||
|
|
||||||
* Some updates for better reverse proxying [yesod-scaffold#114](https://github.com/yesodweb/yesod-scaffold/issues/114)
|
* Some updates for better reverse proxying [yesod-scaffold#114](https://github.com/yesodweb/yesod-scaffold/issues/114)
|
||||||
|
|||||||
@ -77,7 +77,8 @@ import Network.HTTP.ReverseProxy (ProxyDest (ProxyDest),
|
|||||||
import qualified Network.HTTP.ReverseProxy as ReverseProxy
|
import qualified Network.HTTP.ReverseProxy as ReverseProxy
|
||||||
import Network.HTTP.Types (status200, status503)
|
import Network.HTTP.Types (status200, status503)
|
||||||
import Network.Socket (sClose)
|
import Network.Socket (sClose)
|
||||||
import Network.Wai (responseLBS, requestHeaders)
|
import Network.Wai (responseLBS, requestHeaders,
|
||||||
|
requestHeaderHost)
|
||||||
import Network.Wai.Parse (parseHttpAccept)
|
import Network.Wai.Parse (parseHttpAccept)
|
||||||
import Network.Wai.Handler.Warp (run, defaultSettings, setPort)
|
import Network.Wai.Handler.Warp (run, defaultSettings, setPort)
|
||||||
import Network.Wai.Handler.WarpTLS (runTLS, tlsSettingsMemory)
|
import Network.Wai.Handler.WarpTLS (runTLS, tlsSettingsMemory)
|
||||||
@ -192,7 +193,18 @@ reverseProxy opts iappPort = do
|
|||||||
let req' = req
|
let req' = req
|
||||||
{ requestHeaders
|
{ requestHeaders
|
||||||
= ("X-Forwarded-Proto", "https")
|
= ("X-Forwarded-Proto", "https")
|
||||||
: requestHeaders req
|
-- Workaround for
|
||||||
|
-- https://github.com/yesodweb/wai/issues/478, where
|
||||||
|
-- the Host headers aren't set. Without this, generated
|
||||||
|
-- URLs from guestApproot are incorrect, see:
|
||||||
|
-- https://github.com/yesodweb/yesod-scaffold/issues/114
|
||||||
|
: (case lookup "host" (requestHeaders req) of
|
||||||
|
Nothing ->
|
||||||
|
case requestHeaderHost req of
|
||||||
|
Just host -> (("Host", host):)
|
||||||
|
Nothing -> id
|
||||||
|
Just _ -> id)
|
||||||
|
(requestHeaders req)
|
||||||
}
|
}
|
||||||
app req' send
|
app req' send
|
||||||
httpProxy = run (develPort opts) proxyApp
|
httpProxy = run (develPort opts) proxyApp
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-bin
|
name: yesod-bin
|
||||||
version: 1.4.16
|
version: 1.4.16.1
|
||||||
license: MIT
|
license: MIT
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Michael Snoyman <michael@snoyman.com>
|
author: Michael Snoyman <michael@snoyman.com>
|
||||||
@ -82,7 +82,7 @@ executable yesod
|
|||||||
, transformers
|
, transformers
|
||||||
, transformers-compat
|
, transformers-compat
|
||||||
, warp >= 1.3.7.5
|
, warp >= 1.3.7.5
|
||||||
, wai >= 1.4
|
, wai >= 2.0
|
||||||
, wai-extra
|
, wai-extra
|
||||||
, data-default-class
|
, data-default-class
|
||||||
, streaming-commons
|
, streaming-commons
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user