authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-27 20:23:21-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-29 06:20:52-07:00
log30448d92af596724dc227c96803961bc41de9253
tree31e7d84a27fef15f1e363ec5abd0921d5c2b1a72
parent030ddc79528d41571b8329252c5f853d477a0f7b

std.Io.Threaded: fix netLookup for Windows

* respect address family option * fix port number using wrong buffer

1 files changed, 6 insertions(+), 2 deletions(-)

lib/std/Io/Threaded.zig+6-2
......@@ -4635,13 +4635,17 @@ fn netLookupFallible(
46354635 var port_buffer_wide: [8]u16 = undefined;
46364636 const port = std.fmt.bufPrint(&port_buffer, "{d}", .{options.port}) catch
46374637 unreachable; // `port_buffer` is big enough for decimal u16.
4638 for (port, port_buffer[0..port.len]) |byte, *wide| wide.* = byte;
4638 for (port, port_buffer_wide[0..port.len]) |byte, *wide|
4639 wide.* = std.mem.nativeToLittle(u16, byte);
46394640 port_buffer_wide[port.len] = 0;
46404641 const port_w = port_buffer_wide[0..port.len :0];
46414642
46424643 const hints: ws2_32.ADDRINFOEXW = .{
46434644 .flags = .{ .NUMERICSERV = true },
4644 .family = posix.AF.UNSPEC,
4645 .family = if (options.family) |f| switch (f) {
4646 .ip4 => posix.AF.INET,
4647 .ip6 => posix.AF.INET6,
4648 } else posix.AF.UNSPEC,
46454649 .socktype = posix.SOCK.STREAM,
46464650 .protocol = posix.IPPROTO.TCP,
46474651 .canonname = null,