]> git.proxmox.com Git - pmg-api.git/commitdiff
register new format 'tls-policy-strict'
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 28 Sep 2018 04:26:07 +0000 (06:26 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 28 Sep 2018 04:26:07 +0000 (06:26 +0200)
PMG/API2/DestinationTLSPolicy.pm
PMG/Config.pm

index ecb5a8f30cfd0c6aad00d7e99e14fbd9dec67e35..f112d0bff3bbce5b57a1f33d517edb233d9405c0 100644 (file)
@@ -63,7 +63,7 @@ __PACKAGE__->register_method ({
            },
            policy => {
                description => "TLS policy",
-               type => 'string', format => 'tls-policy',
+               type => 'string', format => 'tls-policy-strict',
            },
        },
     },
@@ -71,10 +71,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
        my $domain = $param->{domain};
-       my $policy = PMG::Config::pmg_verify_tls_policy_strict($param->{policy});
-
-       raise_param_exc({ policy => "$param->{policy} is not a valid TLSPolicy" })
-           if ! defined($policy);
+       my $policy = $param->{policy};
 
        my $code = sub {
            my $tls_policy = PVE::INotify::read_file('tls_policy');
@@ -148,7 +145,7 @@ __PACKAGE__->register_method ({
            },
            policy => {
                description => "TLS policy",
-               type => 'string', format => 'tls-policy',
+               type => 'string', format => 'tls-policy-strict',
            },
        },
     },
@@ -156,10 +153,7 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
        my $domain = $param->{domain};
-       my $policy = PMG::Config::pmg_verify_tls_policy_strict($param->{policy});
-
-       raise_param_exc({ policy => "$param->{policy} is not a valid TLSPolicy" })
-           if ! defined($policy);
+       my $policy = $param->{policy};
 
        my $code = sub {
 
index a3fa4ace73d59979fd12e057776123ab6717cf93..81ab27d656e00d49fa05b84fb27edd658775ba9d 100755 (executable)
@@ -959,13 +959,17 @@ sub pmg_verify_tls_policy {
     return $policy;
 }
 
-sub pmg_verify_tls_policy_strict {
-    my ($policy) = @_;
+PVE::JSONSchema::register_format(
+    'tls-policy-strict', \&pmg_verify_tls_policy_strict);
 
-    return $policy
-       if ($policy =~ /^$VALID_TLS_POLICY_RE$/);
+sub pmg_verify_tls_policy_strict {
+    my ($policy, $noerr) = @_;
 
-    return undef;
+    if ($policy !~ /^$VALID_TLS_POLICY_RE$/) {
+       return undef if $noerr;
+       die "value '$policy' does not look like a valid tls policy\n";
+    }
+    return $policy;
 }
 
 sub read_tls_policy {