Address issue #443. (#447)

* Address issue #443.

* Address review comments.
This commit is contained in:
Eugene Kabanov 2023-09-07 16:25:25 +03:00 committed by Zahary Karadjov
parent 6c2ea67512
commit 176d462b07
No known key found for this signature in database
GPG Key ID: C1F42EAFF38D570F
1 changed files with 14 additions and 3 deletions

View File

@ -13,7 +13,7 @@ import ../../streams/[asyncstream, tlsstream, chunkstream, boundstream]
import httptable, httpcommon, httpagent, httpbodyrw, multipart
export results, asyncloop, asyncsync, asyncstream, tlsstream, chunkstream,
boundstream, httptable, httpcommon, httpagent, httpbodyrw, multipart,
httputils
httputils, uri
export SocketFlags
const
@ -1335,8 +1335,13 @@ proc redirect*(request: HttpClientRequestRef,
if redirectCount > request.session.maxRedirections:
err("Maximum number of redirects exceeded")
else:
let headers =
block:
var res = request.headers
res.set(HostHeader, ha.hostname)
res
var res = HttpClientRequestRef.new(request.session, ha, request.meth,
request.version, request.flags, request.headers.toList(), request.buffer)
request.version, request.flags, headers.toList(), request.buffer)
res.redirectCount = redirectCount
ok(res)
@ -1353,8 +1358,14 @@ proc redirect*(request: HttpClientRequestRef,
err("Maximum number of redirects exceeded")
else:
let address = ? request.session.redirect(request.address, uri)
# Update Host header to redirected URL hostname
let headers =
block:
var res = request.headers
res.set(HostHeader, address.hostname)
res
var res = HttpClientRequestRef.new(request.session, address, request.meth,
request.version, request.flags, request.headers.toList(), request.buffer)
request.version, request.flags, headers.toList(), request.buffer)
res.redirectCount = redirectCount
ok(res)