diff --git a/lib/std/Io/net/HostName.zig b/lib/std/Io/net/HostName.zig index 5ae170fc73..4cd0621b97 100644 --- a/lib/std/Io/net/HostName.zig +++ b/lib/std/Io/net/HostName.zig @@ -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 \\ ;