| ... | ... | @@ -175,24 +175,7 @@ pub fn open(allocator: std.mem.Allocator, method: Method, input: []const u8) !Cl |
| 175 | 175 | const u = try url.URL.parse(allocator, input, null); |
| 176 | 176 | defer allocator.free(u.href); |
| 177 | 177 | |
| 178 | | const addr: net.Address = switch (u.hostFancy()) { |
| 179 | | .unset => unreachable, |
| 180 | | .ipv4 => |int| .initIp4(@bitCast(int), u.portFancy().?), |
| 181 | | .ipv6 => |int| .initIp6(@bitCast(int), u.portFancy().?), |
| 182 | | .name => |hostname| blk: { |
| 183 | | const hostnamez = try allocator.dupeZ(u8, hostname); |
| 184 | | defer allocator.free(hostnamez); |
| 185 | | const portz = try std.fmt.allocPrintZ(allocator, "{d}", .{u.portFancy().?}); |
| 186 | | defer allocator.free(portz); |
| 187 | | const gai = try net.getaddrinfo(hostnamez, portz, null); |
| 188 | | defer net.freeaddrinfo(gai); |
| 189 | | break :blk switch (gai.addr.?.family) { |
| 190 | | .INET => .{ .in = .{ .sa = @as(*net.Ip4Address.SockAddr, @ptrCast(@alignCast(gai.addr.?))).* } }, |
| 191 | | .INET6 => .{ .in6 = .{ .sa = @as(*net.Ip6Address.SockAddr, @ptrCast(@alignCast(gai.addr.?))).* } }, |
| 192 | | else => @panic("TODO"), |
| 193 | | }; |
| 194 | | }, |
| 195 | | }; |
| 178 | const addr: net.Address = .fromUrl(&u, allocator); |
| 196 | 179 | |
| 197 | 180 | const conn = try addr.tcpConnect(); |
| 198 | 181 | errdefer conn.close(); |