]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/JSONSchema.pm
PVE::INotify: testable interface parser
[pve-common.git] / src / PVE / JSONSchema.pm
index 028766c13e07459122d03331400f6428bdebd53b..36a2de994e35cf1c7f8f4655a4f13c0334e6f5fc 100644 (file)
@@ -155,7 +155,7 @@ sub pve_verify_ipv4 {
 }
 
 register_format('ipv6', \&pve_verify_ipv6);
-sub pve_verify_ipv4 {
+sub pve_verify_ipv6 {
     my ($ipv6, $noerr) = @_;
 
     if ($ipv6 !~ m/^(?:$IPV6RE)$/) {
@@ -271,9 +271,23 @@ sub pve_verify_iface {
     return $id;
 }
 
+# general addresses by name or IP
+register_format('address', \&pve_verify_address);
+sub pve_verify_address {
+    my ($addr, $noerr) = @_;
+
+    if (!(pve_verify_ip($addr, 1) ||
+         pve_verify_dns_name($addr, 1)))
+    {
+          return undef if $noerr;
+          die "value does not look like a valid address: $addr\n";
+    }
+    return $addr;
+}
+
 register_standard_option('spice-proxy', {
     description => "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
-    type => 'string', format => 'dns-name',
+    type => 'string', format => 'address',
 }); 
 
 register_standard_option('remote-viewer-config', {