1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-09-19 18:53:43 +02:00

client: Copy only what is needed from the Request

This commit is contained in:
adnano 2021-02-21 09:40:31 -05:00
parent 070c258c8d
commit b90b5bf2dc

View File

@ -74,15 +74,16 @@ func (c *Client) Do(ctx context.Context, req *Request) (*Response, error) {
if host != punycode { if host != punycode {
host = punycode host = punycode
// Make a copy of the request // Copy the URL and update the host
r2 := new(Request) u := new(url.URL)
*r2 = *req *u = *req.URL
r2.URL = new(url.URL) u.Host = net.JoinHostPort(host, port)
*r2.URL = *req.URL
req = r2
// Set the host // Use the new URL in the request so that the server gets
req.URL.Host = net.JoinHostPort(host, port) // the punycoded hostname
req = &Request{
URL: u,
}
} }
// Use request host if provided // Use request host if provided