Commit f14c4c3db8

Andrew Kelley <andrew@ziglang.org>
2025-10-17 01:02:35
std.Io.net.HostName: fix connectMany not running DNS async
1 parent 6336d58
Changed files (1)
lib
std
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
         \\
     ;