[pve-devel] [RFC PATCH 1/7] JSONSchema: ipv6subnet and ipsubnet
Wolfgang Bumiller
w.bumiller at proxmox.com
Mon Jun 22 16:06:54 CEST 2015
ipv6subnet matches an ipv6 subnet length (0..128)
ipsubnet matches an ipv4mask or an ipv6subnet
---
src/PVE/JSONSchema.pm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
index 36a2de9..12a209e 100644
--- a/src/PVE/JSONSchema.pm
+++ b/src/PVE/JSONSchema.pm
@@ -220,6 +220,28 @@ sub pve_verify_ipv4mask {
return $mask;
}
+register_format('ipv6subnet', \&pve_verify_ipv6subnet);
+sub pve_verify_ipv6subnet {
+ my ($subnet, $noerr) = @_;
+ ($subnet) = grep(/^\d+$/, $subnet);
+ return $subnet if defined($subnet) && $subnet <= 128;
+ return undef if $noerr;
+ die "value is not a valid ipv6 subnet range\n";
+}
+
+register_format('ipsubnet', \&pve_verify_ipsubnet);
+sub pve_verify_ipsubnet {
+ my ($subnet, $noerr) = @_;
+
+ if (!(pve_verify_ipv6subnet($subnet, 1) ||
+ pve_verify_ipv4mask($subnet, 1)))
+ {
+ return undef if $noerr;
+ die "value does not look like a valid subnet mask\n";
+ }
+ return $subnet;
+}
+
register_format('CIDR', \&pve_verify_cidr);
sub pve_verify_cidr {
my ($cidr, $noerr) = @_;
--
2.1.4
More information about the pve-devel
mailing list