X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FJSONSchema.pm;h=028766c13e07459122d03331400f6428bdebd53b;hp=f42519cbfe26ee3f91cf1fbacd53323ea1e5876f;hb=ed5880acdc77673c98ac25fcc4c58201832b9de7;hpb=c70c3bbc838ecca0249071a294cd64e66967566d diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index f42519c..028766c 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -147,13 +147,35 @@ register_format('ipv4', \&pve_verify_ipv4); sub pve_verify_ipv4 { my ($ipv4, $noerr) = @_; - if (!Net::IP::ip_is_ipv4($ipv4)) { - return undef if $noerr; - die "value does not look like a valid IP address\n"; + if ($ipv4 !~ m/^(?:$IPV4RE)$/) { + return undef if $noerr; + die "value does not look like a valid IPv4 address\n"; } return $ipv4; } +register_format('ipv6', \&pve_verify_ipv6); +sub pve_verify_ipv4 { + my ($ipv6, $noerr) = @_; + + if ($ipv6 !~ m/^(?:$IPV6RE)$/) { + return undef if $noerr; + die "value does not look like a valid IPv6 address\n"; + } + return $ipv6; +} + +register_format('ip', \&pve_verify_ip); +sub pve_verify_ip { + my ($ip, $noerr) = @_; + + if ($ip !~ m/^(?:(?:$IPV4RE)|(?:$IPV6RE))$/) { + return undef if $noerr; + die "value does not look like a valid IP address\n"; + } + return $ip; +} + my $ipv4_mask_hash = { '128.0.0.0' => 1, '192.0.0.0' => 2,