pub fn resolve(io: Io, buffer: []const u8, port: u16) ResolveError!Ip6Address io: Iobuffer: []const u8port: u16706
707
708
709
710
711
712
713
714
715
716
717
718
719 pub fn resolve(io: Io, buffer: []const u8, port: u16) ResolveError!Ip6Address {
return switch (Unresolved.parse(buffer)) {
.success => |p| return .{
.bytes = p.bytes,
.port = port,
.interface = i: {
const text = p.interface_name orelse break :i .none;
const name: Interface.Name = try .fromSlice(text);
break :i try name.resolve(io);
},
},
else => return error.ParseFailed,
};
}
This function requires an
Ioparameter because it must query the operating system to convert interface name to index. For example, in "fe80::e0e:76ff:fed4:cf22%eno1", "eno1" must be resolved to an index by creating a socket and then using anioctlsyscall.