mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
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 URI provided by the API user included it. Closes #19624
This commit is contained in:
parent
f1c0f42cdd
commit
419753f45e
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user