Skip to content

Commit

Permalink
Avoid using std.net.Address.parse (#5950)
Browse files Browse the repository at this point in the history
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
  • Loading branch information
Jarred-Sumner and Jarred-Sumner committed Sep 24, 2023
1 parent b6a4161 commit 57010cc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/deps/c_ares.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1252,7 +1252,7 @@ pub extern fn ares_set_servers_csv(channel: *Channel, servers: [*c]const u8) c_i
pub extern fn ares_set_servers_ports_csv(channel: *Channel, servers: [*c]const u8) c_int;
pub extern fn ares_get_servers(channel: *Channel, servers: *?*struct_ares_addr_port_node) c_int;
pub extern fn ares_get_servers_ports(channel: *Channel, servers: *?*struct_ares_addr_port_node) c_int;
pub extern fn ares_inet_ntop(af: c_int, src: ?*const anyopaque, dst: [*c]u8, size: ares_socklen_t) [*c]const u8;
pub extern fn ares_inet_ntop(af: c_int, src: ?*const anyopaque, dst: [*c]u8, size: ares_socklen_t) ?[*:0]const u8;
pub extern fn ares_inet_pton(af: c_int, src: [*c]const u8, dst: ?*anyopaque) c_int;
pub const ARES_SUCCESS = 0;
pub const ARES_ENODATA = 1;
Expand Down
36 changes: 18 additions & 18 deletions src/string_immutable.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4676,30 +4676,30 @@ test "eqlCaseInsensitiveASCII" {
}

pub fn isIPAddress(input: []const u8) bool {
if (containsChar(input, ':'))
return true;
var max_ip_address_buffer: [512]u8 = undefined;
if (input.len > max_ip_address_buffer.len) return false;

if (comptime Environment.isWindows) {
return bun.todo(@src(), false);
}
var sockaddr: std.os.sockaddr = undefined;
@memset(std.mem.asBytes(&sockaddr), 0);
@memcpy(max_ip_address_buffer[0..input.len], input);
max_ip_address_buffer[input.len] = 0;

if (std.net.Address.resolveIp(input, 0)) |_| {
return true;
} else |_| {
return false;
}
var ip_addr_str: [:0]const u8 = max_ip_address_buffer[0.. :0];

return bun.c_ares.ares_inet_pton(std.os.AF.INET, ip_addr_str.ptr, &sockaddr) != 0 or bun.c_ares.ares_inet_pton(std.os.AF.INET6, ip_addr_str.ptr, &sockaddr) != 0;
}

pub fn isIPV6Address(input: []const u8) bool {
if (comptime Environment.isWindows) {
return bun.todo(@src(), false);
}
var max_ip_address_buffer: [512]u8 = undefined;
if (input.len > max_ip_address_buffer.len) return false;

if (std.net.Address.parseIp6(input, 0)) |_| {
return true;
} else |_| {
return false;
}
var sockaddr: std.os.sockaddr = undefined;
@memset(std.mem.asBytes(&sockaddr), 0);
@memcpy(max_ip_address_buffer[0..input.len], input);
max_ip_address_buffer[input.len] = 0;

var ip_addr_str: [:0]const u8 = max_ip_address_buffer[0.. :0];
return bun.c_ares.ares_inet_pton(std.os.AF.INET6, ip_addr_str.ptr, &sockaddr) != 0;
}

pub fn cloneNormalizingSeparators(
Expand Down

0 comments on commit 57010cc

Please sign in to comment.