srctree

Andrew Kelley parent f1c0f42c 419753f4
std.http.Client: pass port to server based on user input

This makes the host http header have the port if and only if the URIprovided by the API user included it.

Closes #19624

inlinesplit
lib/std/http/Client.zig added: 9, removed: 6, total 3
@@ -805,7 +805,7 @@ pub const Request = struct {
}
 
req.uri = valid_uri;
req.connection = try req.client.connect(new_host, valid_uri.port.?, protocol);
req.connection = try req.client.connect(new_host, uriPort(valid_uri, protocol), protocol);
req.redirect_behavior.subtractOne();
req.response.parser.reset();
 
@@ -1264,7 +1264,7 @@ fn createProxyFromEnvVar(arena: Allocator, env_var_names: []const []const u8) !?
.protocol = protocol,
.host = valid_uri.host.?.raw,
.authorization = authorization,
.port = valid_uri.port.?,
.port = uriPort(valid_uri, protocol),
.supports_connect = true,
};
return proxy;
@@ -1582,11 +1582,14 @@ fn validateUri(uri: Uri, arena: Allocator) !struct { Connection.Protocol, Uri }
valid_uri.host = .{
.raw = try (uri.host orelse return error.UriMissingHost).toRawMaybeAlloc(arena),
};
valid_uri.port = uri.port orelse switch (protocol) {
return .{ protocol, valid_uri };
}
 
fn uriPort(uri: Uri, protocol: Connection.Protocol) u16 {
return uri.port orelse switch (protocol) {
.plain => 80,
.tls => 443,
};
return .{ protocol, valid_uri };
}
 
/// Open a connection to the host specified by `uri` and prepare to send a HTTP request.
@@ -1634,7 +1637,7 @@ pub fn open(
}
 
const conn = options.connection orelse
try client.connect(valid_uri.host.?.raw, valid_uri.port.?, protocol);
try client.connect(valid_uri.host.?.raw, uriPort(valid_uri, protocol), protocol);
 
var req: Request = .{
.uri = valid_uri,