diff --git a/lib/std/net.zig b/lib/std/net.zig index b4e2254da..1596df2d7 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -542,14 +542,17 @@ fn if_nametoindex(name: []const u8) !u32 { switch (os.errno(rc)) { os.EBADF => return error.BadFile, os.EINTR => return error.CaughtSignal, - os.EINVAL => unreachable, os.EIO => return error.FileSystem, + os.EINVAL => unreachable, os.ENOTTY => unreachable, os.ENXIO => unreachable, - os.ENODEV => return error.Unsupported, + // ioctl() sends ENODEV for an unknown scope id. + os.ENODEV => return error.InterfaceNotFound, else => {}, } + std.debug.warn("ival={}\n", .{ifr.ifr_ifru.ifru_ivalue}); + return @bitCast(u32, ifr.ifr_ifru.ifru_ivalue); }