[pve-devel] [PATCH 01/16] JSONSchema: ipv6prefix and ipsubnet
Wolfgang Bumiller
w.bumiller at proxmox.com
Wed Jun 24 14:33:15 CEST 2015
ipv6prefix matches an ipv6 prefix length (0..128)
ipsubnet matches an ipv4mask or an ipv6prefix
---
src/PVE/JSONSchema.pm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
index 36a2de9..8fa5651 100644
--- a/src/PVE/JSONSchema.pm
+++ b/src/PVE/JSONSchema.pm
@@ -220,6 +220,28 @@ sub pve_verify_ipv4mask {
return $mask;
}
+register_format('ipv6prefix', \&pve_verify_ipv6prefix);
+sub pve_verify_ipv6prefix {
+ 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_ipv6prefix($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