| ... | ... | @@ -2814,7 +2814,7 @@ fn netLookupFallible( |
| 2814 | 2814 | while (true) { |
| 2815 | 2815 | try t.checkCancel(); |
| 2816 | 2816 | switch (posix.system.getaddrinfo(name_c.ptr, port_c.ptr, &hints, &res)) { |
| 2817 | | @as(posix.system.EAI, @enumFromInt(0)) => {}, |
| 2817 | @as(posix.system.EAI, @enumFromInt(0)) => break, |
| 2818 | 2818 | .ADDRFAMILY => return error.AddressFamilyUnsupported, |
| 2819 | 2819 | .AGAIN => return error.NameServerFailure, |
| 2820 | 2820 | .FAIL => return error.NameServerFailure, |
| ... | ... | @@ -2832,10 +2832,11 @@ fn netLookupFallible( |
| 2832 | 2832 | defer if (res) |some| posix.system.freeaddrinfo(some); |
| 2833 | 2833 | |
| 2834 | 2834 | var it = res; |
| 2835 | | var canon_name: ?[]const u8 = null; |
| 2835 | var canon_name: ?[*:0]const u8 = null; |
| 2836 | 2836 | while (it) |info| : (it = info.next) { |
| 2837 | 2837 | const addr = info.addr orelse continue; |
| 2838 | | try resolved.putOne(addressFromPosix(addr)); |
| 2838 | const storage: PosixAddress = .{ .any = addr.* }; |
| 2839 | try resolved.putOne(t_io, .{ .address = addressFromPosix(&storage) }); |
| 2839 | 2840 | |
| 2840 | 2841 | if (info.canonname) |n| { |
| 2841 | 2842 | if (canon_name == null) { |
| ... | ... | @@ -2844,7 +2845,9 @@ fn netLookupFallible( |
| 2844 | 2845 | } |
| 2845 | 2846 | } |
| 2846 | 2847 | if (canon_name) |n| { |
| 2847 | | try resolved.putOne(.{ .canonical_name = copyCanon(options.canonical_name_buffer, n) }); |
| 2848 | try resolved.putOne(t_io, .{ |
| 2849 | .canonical_name = copyCanon(options.canonical_name_buffer, std.mem.sliceTo(n, 0)), |
| 2850 | }); |
| 2848 | 2851 | } |
| 2849 | 2852 | return; |
| 2850 | 2853 | } |
| ... | ... | @@ -2870,7 +2873,7 @@ fn posixAddressFamily(a: *const IpAddress) posix.sa_family_t { |
| 2870 | 2873 | }; |
| 2871 | 2874 | } |
| 2872 | 2875 | |
| 2873 | | fn addressFromPosix(posix_address: *PosixAddress) IpAddress { |
| 2876 | fn addressFromPosix(posix_address: *const PosixAddress) IpAddress { |
| 2874 | 2877 | return switch (posix_address.any.family) { |
| 2875 | 2878 | posix.AF.INET => .{ .ip4 = address4FromPosix(&posix_address.in) }, |
| 2876 | 2879 | posix.AF.INET6 => .{ .ip6 = address6FromPosix(&posix_address.in6) }, |
| ... | ... | @@ -2898,14 +2901,14 @@ fn addressUnixToPosix(a: *const net.UnixAddress, storage: *UnixAddress) posix.so |
| 2898 | 2901 | return @sizeOf(posix.sockaddr.un); |
| 2899 | 2902 | } |
| 2900 | 2903 | |
| 2901 | | fn address4FromPosix(in: *posix.sockaddr.in) net.Ip4Address { |
| 2904 | fn address4FromPosix(in: *const posix.sockaddr.in) net.Ip4Address { |
| 2902 | 2905 | return .{ |
| 2903 | 2906 | .port = std.mem.bigToNative(u16, in.port), |
| 2904 | 2907 | .bytes = @bitCast(in.addr), |
| 2905 | 2908 | }; |
| 2906 | 2909 | } |
| 2907 | 2910 | |
| 2908 | | fn address6FromPosix(in6: *posix.sockaddr.in6) net.Ip6Address { |
| 2911 | fn address6FromPosix(in6: *const posix.sockaddr.in6) net.Ip6Address { |
| 2909 | 2912 | return .{ |
| 2910 | 2913 | .port = std.mem.bigToNative(u16, in6.port), |
| 2911 | 2914 | .bytes = in6.addr, |