mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +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
1 changed files with 8 additions and 5 deletions
|
|
@ -805,7 +805,7 @@ pub const Request = struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
req.uri = valid_uri;
|
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.redirect_behavior.subtractOne();
|
||||||
req.response.parser.reset();
|
req.response.parser.reset();
|
||||||
|
|
||||||
|
|
@ -1264,7 +1264,7 @@ fn createProxyFromEnvVar(arena: Allocator, env_var_names: []const []const u8) !?
|
||||||
.protocol = protocol,
|
.protocol = protocol,
|
||||||
.host = valid_uri.host.?.raw,
|
.host = valid_uri.host.?.raw,
|
||||||
.authorization = authorization,
|
.authorization = authorization,
|
||||||
.port = valid_uri.port.?,
|
.port = uriPort(valid_uri, protocol),
|
||||||
.supports_connect = true,
|
.supports_connect = true,
|
||||||
};
|
};
|
||||||
return proxy;
|
return proxy;
|
||||||
|
|
@ -1582,11 +1582,14 @@ fn validateUri(uri: Uri, arena: Allocator) !struct { Connection.Protocol, Uri }
|
||||||
valid_uri.host = .{
|
valid_uri.host = .{
|
||||||
.raw = try (uri.host orelse return error.UriMissingHost).toRawMaybeAlloc(arena),
|
.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,
|
.plain => 80,
|
||||||
.tls => 443,
|
.tls => 443,
|
||||||
};
|
};
|
||||||
return .{ protocol, valid_uri };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Open a connection to the host specified by `uri` and prepare to send a HTTP request.
|
/// 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
|
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 = .{
|
var req: Request = .{
|
||||||
.uri = valid_uri,
|
.uri = valid_uri,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue