std.Io.net.HostName: fix connectMany not running DNS async

This commit is contained in:
Andrew Kelley 2025-10-16 16:02:35 -07:00
parent 6336d58661
commit f14c4c3db8

View file

@ -268,20 +268,20 @@ pub fn connectMany(
var canonical_name_buffer: [max_len]u8 = undefined;
var lookup_buffer: [32]HostName.LookupResult = undefined;
var lookup_queue: Io.Queue(LookupResult) = .init(&lookup_buffer);
var group: Io.Group = .init;
host_name.lookup(io, &lookup_queue, .{
group.async(io, lookup, .{ host_name, io, &lookup_queue, .{
.port = port,
.canonical_name_buffer = &canonical_name_buffer,
});
var group: Io.Group = .init;
} });
while (lookup_queue.getOne(io)) |dns_result| switch (dns_result) {
.address => |address| group.async(io, enqueueConnection, .{ address, io, results, options }),
.canonical_name => continue,
.end => |lookup_result| {
group.waitUncancelable(io);
results.putOneUncancelable(io, .{ .end = lookup_result });
results.putOneUncancelable(io, .{
.end = if (group.wait(io)) lookup_result else |err| err,
});
return;
},
} else |err| switch (err) {
@ -409,7 +409,7 @@ test ResolvConf {
\\# Generated by resolvconf
\\nameserver 1.0.0.1
\\nameserver 1.1.1.1
\\nameserver fe80::e0e:76ff:fed4:cf22%eno1
\\nameserver fe80::e0e:76ff:fed4:cf22
\\options edns0
\\
;