'255.255.255.224' => 27,
'255.255.255.240' => 28,
'255.255.255.248' => 29,
- '255.255.255.252' => 30
+ '255.255.255.252' => 30,
+ '255.255.255.254' => 31,
+ '255.255.255.255' => 32,
};
register_format('ipv4mask', \&pve_verify_ipv4mask);
return undef;
}
return 1;
+ } elsif ($type eq 'string' && $vt eq 'Regexp') {
+ # qr// regexes can be used as strings and make sense for format=regex
+ return 1;
} else {
if ($vt) {
add_error($errors, $path, "type check ('$type') failed - got $vt");
my $done = { map { $_ => 1 } @$skip };
my $cond_add_key = sub {
- my ($key) = @_;
+ my ($key, $isdefault) = @_;
return if $done->{$key}; # avoid duplicates
die "internal error" if defined($phash->{alias});
my $value_str = &$format_value($key, $value, $phash->{format});
- &$add_option_string("$key=${value_str}");
+ if ($isdefault) {
+ &$add_option_string($value_str);
+ } else {
+ &$add_option_string("$key=${value_str}");
+ }
};
# add default key first
- &$cond_add_key($default_key) if defined($default_key);
+ &$cond_add_key($default_key, 1) if defined($default_key);
# add required keys first
foreach my $key (sort keys %$data) {