From ed5880acdc77673c98ac25fcc4c58201832b9de7 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 23 Apr 2015 08:19:03 +0200 Subject: [PATCH] add additional methods for IP address verification --- src/PVE/JSONSchema.pm | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) 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, -- 2.39.2