]> git.proxmox.com Git - pmg-api.git/commitdiff
register and use new format 'transport-domain'
authorDietmar Maurer <dietmar@proxmox.com>
Sun, 26 Feb 2017 15:26:23 +0000 (16:26 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Sun, 26 Feb 2017 15:29:30 +0000 (16:29 +0100)
PMG/API2/Transport.pm
PMG/Config.pm

index 555d315ae6f7b2e4761527ad0b80bb7a6d3cc99e..30c06370aac1d4b487e6131423e436196d7067aa 100644 (file)
@@ -65,7 +65,7 @@ __PACKAGE__->register_method ({
        properties => {
            domain => {
                description => "Domain name.",
-               type => 'string', format => 'dns-name',
+               type => 'string', format => 'transport-domain',
            },
            host => {
                description => "Target host (name or IP address).",
@@ -132,7 +132,7 @@ __PACKAGE__->register_method ({
        properties => {
            domain => {
                description => "Domain name.",
-               type => 'string', format => 'dns-name',
+               type => 'string', format => 'transport-domain',
            },
        },
     },
@@ -170,7 +170,7 @@ __PACKAGE__->register_method ({
        properties => {
            domain => {
                description => "Domain name.",
-               type => 'string', format => 'dns-name',
+               type => 'string', format => 'transport-domain',
            },
            host => {
                description => "Target host (name or IP address).",
@@ -238,7 +238,7 @@ __PACKAGE__->register_method ({
        properties => {
            domain => {
                description => "Domain name.",
-               type => 'string', format => 'dns-name',
+               type => 'string', format => 'transport-domain',
            },
        }
     },
index b68efbd8142fa775aa36b50cce5db27814d8cbd6..9058b511b12a7b98650a1c295c2ac5dcb04fe177 100755 (executable)
@@ -504,6 +504,7 @@ use Template;
 use PVE::SafeSyslog;
 use PVE::Tools qw($IPV4RE $IPV6RE);
 use PVE::INotify;
+use PVE::JSONSchema;
 
 PMG::Config::Admin->register();
 PMG::Config::Mail->register();
@@ -513,6 +514,20 @@ PMG::Config::ClamAV->register();
 # initialize all plugins
 PMG::Config::Base->init();
 
+PVE::JSONSchema::register_format(
+    'transport-domain', \&pmg_verify_transport_domain);
+sub pmg_verify_transport_domain {
+    my ($name, $noerr) = @_;
+
+    # like dns-name, but can contain leading dot
+    my $namere = "([a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?)";
+
+    if ($name !~ /^\.?(${namere}\.)*${namere}$/) {
+          return undef if $noerr;
+          die "value does not look like a valid transport domain\n";
+    }
+    return $name;
+}
 
 sub new {
     my ($type) = @_;