diff --git a/lib/std/Io.zig b/lib/std/Io.zig index 4d10afbafe..2b2f0646f4 100644 --- a/lib/std/Io.zig +++ b/lib/std/Io.zig @@ -668,7 +668,7 @@ pub const VTable = struct { netRead: *const fn (?*anyopaque, src: net.Stream, data: [][]u8) net.Stream.Reader.Error!usize, netWrite: *const fn (?*anyopaque, dest: net.Stream, header: []const u8, data: []const []const u8, splat: usize) net.Stream.Writer.Error!usize, netClose: *const fn (?*anyopaque, stream: net.Stream) void, - netInterfaceNameResolve: *const fn (?*anyopaque, net.Interface.Name) net.Interface.Name.ResolveError!net.Interface, + netInterfaceNameResolve: *const fn (?*anyopaque, *const net.Interface.Name) net.Interface.Name.ResolveError!net.Interface, netInterfaceName: *const fn (?*anyopaque, net.Interface) net.Interface.NameError!net.Interface.Name, }; diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 1ac56469df..c9b0810dac 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -1124,7 +1124,10 @@ fn netClose(userdata: ?*anyopaque, stream: Io.net.Stream) void { return net_stream.close(); } -fn netInterfaceNameResolve(userdata: ?*anyopaque, name: Io.net.Interface.Name) Io.net.Interface.Name.ResolveError!Io.net.Interface { +fn netInterfaceNameResolve( + userdata: ?*anyopaque, + name: *const Io.net.Interface.Name, +) Io.net.Interface.Name.ResolveError!Io.net.Interface { const pool: *Pool = @ptrCast(@alignCast(userdata)); try pool.checkCancel(); diff --git a/lib/std/Io/net.zig b/lib/std/Io/net.zig index c8555db48c..9ab0ba4328 100644 --- a/lib/std/Io/net.zig +++ b/lib/std/Io/net.zig @@ -538,7 +538,7 @@ pub const Interface = struct { } || Io.UnexpectedError || Io.Cancelable; /// Corresponds to "if_nametoindex" in libc. - pub fn resolve(n: []const u8, io: Io) ResolveError!Interface { + pub fn resolve(n: *const Name, io: Io) ResolveError!Interface { return io.vtable.netInterfaceNameResolve(io.userdata, n); } }; diff --git a/lib/std/Io/net/HostName.zig b/lib/std/Io/net/HostName.zig index 710f0cb43c..9bce195034 100644 --- a/lib/std/Io/net/HostName.zig +++ b/lib/std/Io/net/HostName.zig @@ -542,7 +542,7 @@ pub const ResolvConf = struct { error.NotDir, error.AccessDenied, => { - try addNumeric(&rc, "127.0.0.1", 53); + try addNumeric(&rc, io, "127.0.0.1", 53); return rc; }, @@ -552,7 +552,7 @@ pub const ResolvConf = struct { var line_buf: [512]u8 = undefined; var file_reader = file.reader(io, &line_buf); - parse(&rc, &file_reader.interface) catch |err| switch (err) { + parse(&rc, io, &file_reader.interface) catch |err| switch (err) { error.ReadFailed => return file_reader.err.?, else => |e| return e, }; @@ -562,7 +562,7 @@ pub const ResolvConf = struct { const Directive = enum { options, nameserver, domain, search }; const Option = enum { ndots, attempts, timeout }; - fn parse(rc: *ResolvConf, reader: *Io.Reader) !void { + fn parse(rc: *ResolvConf, io: Io, reader: *Io.Reader) !void { while (reader.takeSentinel('\n')) |line_with_comment| { const line = line: { var split = std.mem.splitScalar(u8, line_with_comment, '#'); @@ -588,7 +588,7 @@ pub const ResolvConf = struct { }, .nameserver => { const ip_txt = line_it.next() orelse continue; - try addNumeric(rc, ip_txt, 53); + try addNumeric(rc, io, ip_txt, 53); }, .domain, .search => { const rest = line_it.rest(); @@ -602,13 +602,13 @@ pub const ResolvConf = struct { } if (rc.nameservers_len == 0) { - try addNumeric(rc, "127.0.0.1", 53); + try addNumeric(rc, io, "127.0.0.1", 53); } } - fn addNumeric(rc: *ResolvConf, name: []const u8, port: u16) !void { + fn addNumeric(rc: *ResolvConf, io: Io, name: []const u8, port: u16) !void { assert(rc.nameservers_len < rc.nameservers_buffer.len); - rc.nameservers_buffer[rc.nameservers_len] = try .parse(name, port); + rc.nameservers_buffer[rc.nameservers_len] = try .resolve(io, name, port); rc.nameservers_len += 1; }