Skip to content

Commit e9e5dc9

Browse files
committed
Properly take into account the port we are proxying to
1 parent faaa456 commit e9e5dc9

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

src/Network/VCR/Middleware.hs

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,39 @@ import Control.Monad (when)
88
import Data.ByteString.Builder (toLazyByteString)
99
import qualified Data.ByteString.Char8 as BS
1010
import qualified Data.ByteString.Lazy.Char8 as LBS
11-
import Data.IORef (
12-
IORef,
13-
modifyIORef',
14-
newIORef,
15-
readIORef,
16-
writeIORef,
17-
)
11+
import Data.IORef
12+
( IORef
13+
, modifyIORef'
14+
, newIORef
15+
, readIORef
16+
, writeIORef
17+
)
1818
import Data.List (find)
1919
import Data.Maybe (mapMaybe)
2020
import Data.Text (Text)
2121
import qualified Data.Text as T
2222

2323
import qualified Data.Text.Encoding as TE
2424

25-
import Data.Yaml (
26-
decodeFileEither,
27-
encode,
28-
encodeFile,
29-
)
25+
import Data.Yaml
26+
( decodeFileEither
27+
, encode
28+
, encodeFile
29+
)
3030
import qualified Network.HTTP.Types as HT
31-
import Network.VCR.Types (
32-
ApiCall (..),
33-
Body (..),
34-
Cassette (..),
35-
Mode (..),
36-
ReplayError (..),
37-
SavedRequest (..),
38-
SavedResponse (..),
39-
VCRResponse (..),
40-
bodyToLBS,
41-
emptyCassette,
42-
lbsToBody,
43-
)
31+
import Network.VCR.Types
32+
( ApiCall (..)
33+
, Body (..)
34+
, Cassette (..)
35+
, Mode (..)
36+
, ReplayError (..)
37+
, SavedRequest (..)
38+
, SavedResponse (..)
39+
, VCRResponse (..)
40+
, bodyToLBS
41+
, emptyCassette
42+
, lbsToBody
43+
)
4444
import qualified Network.Wai as Wai
4545

4646
import qualified Data.Text.Encoding as BE (encodeUtf8)
@@ -154,7 +154,8 @@ modifyEndpoint endpoint req =
154154
where
155155
endpoint' = TE.encodeUtf8 endpoint
156156
uri = either endpointError id $ URI.parseURI URI.strictURIParserOptions endpoint'
157-
host = maybe noHostError (URI.hostBS . URI.authorityHost) (URI.uriAuthority uri)
157+
(host', port) = maybe noHostError (\a -> (URI.hostBS $ URI.authorityHost a, URI.portNumber <$> URI.authorityPort a)) (URI.uriAuthority uri)
158+
host = host' <> maybe "" (\p -> TE.encodeUtf8 $ ":" <> tshow p) port
158159
scheme = URI.schemeBS . URI.uriScheme $ uri
159160
modifyHeader h@(key, value)
160161
| key == mk "host" = Just (key, host)

0 commit comments

Comments
 (0)