Move option normalization from usage to load
This avoids bugs if a usage forgets to normalize the value.
This commit is contained in:
parent
70858e659f
commit
4d3dcdc7de
1 changed files with 14 additions and 21 deletions
35
ddclient.in
35
ddclient.in
|
@ -1372,15 +1372,12 @@ sub update_nics {
|
||||||
|
|
||||||
for my $h (sort keys %config) {
|
for my $h (sort keys %config) {
|
||||||
local $_l = pushlogctx($h);
|
local $_l = pushlogctx($h);
|
||||||
next if $config{$h}{'protocol'} ne lc($p);
|
next if $config{$h}{'protocol'} ne $p;
|
||||||
$examined{$h} = 1;
|
$examined{$h} = 1;
|
||||||
# we only do this once per 'use' and argument combination
|
# we only do this once per 'use' and argument combination
|
||||||
my $use = opt('use', $h) // 'disabled';
|
my $use = opt('use', $h);
|
||||||
my $usev4 = opt('usev4', $h) // 'disabled';
|
my $usev4 = opt('usev4', $h);
|
||||||
my $usev6 = opt('usev6', $h) // 'disabled';
|
my $usev6 = opt('usev6', $h);
|
||||||
$use = 'disabled' if ($use eq 'no'); # backward compatibility
|
|
||||||
$usev6 = 'disabled' if ($usev6 eq 'no'); # backward compatibility
|
|
||||||
$use = 'disabled' if ($usev4 ne 'disabled') || ($usev6 ne 'disabled');
|
|
||||||
my $arg_ip = opt('ip', $h) // '';
|
my $arg_ip = opt('ip', $h) // '';
|
||||||
my $arg_ipv4 = opt('ipv4', $h) // '';
|
my $arg_ipv4 = opt('ipv4', $h) // '';
|
||||||
my $arg_ipv6 = opt('ipv6', $h) // '';
|
my $arg_ipv6 = opt('ipv6', $h) // '';
|
||||||
|
@ -2041,6 +2038,8 @@ sub init_config {
|
||||||
## now the host definitions...
|
## now the host definitions...
|
||||||
HOST:
|
HOST:
|
||||||
for my $h (keys %config) {
|
for my $h (keys %config) {
|
||||||
|
$config{$h}{use} = 'disabled'
|
||||||
|
if opt('usev4', $h) ne 'disabled' || opt('usev6', $h) ne 'disabled';
|
||||||
my $proto = opt('protocol', $h);
|
my $proto = opt('protocol', $h);
|
||||||
load_sha1_support($proto) if (grep($_ eq $proto, ("freedns", "nfsn")));
|
load_sha1_support($proto) if (grep($_ eq $proto, ("freedns", "nfsn")));
|
||||||
load_json_support($proto) if (grep($_ eq $proto, ("1984", "cloudflare", "digitalocean", "directnic", "gandi", "godaddy", "hetzner", "yandex", "nfsn", "njalla", "porkbun", "dnsexit2")));
|
load_json_support($proto) if (grep($_ eq $proto, ("1984", "cloudflare", "digitalocean", "directnic", "gandi", "godaddy", "hetzner", "yandex", "nfsn", "njalla", "porkbun", "dnsexit2")));
|
||||||
|
@ -2606,6 +2605,7 @@ sub check_value {
|
||||||
|
|
||||||
} elsif ($type eq T_USE) {
|
} elsif ($type eq T_USE) {
|
||||||
$value = lc $value;
|
$value = lc $value;
|
||||||
|
$value = 'disabled' if $value eq 'no'; # backwards compatibility
|
||||||
return undef if !exists $ip_strategies{$value};
|
return undef if !exists $ip_strategies{$value};
|
||||||
|
|
||||||
} elsif ($type eq T_USEV4) {
|
} elsif ($type eq T_USEV4) {
|
||||||
|
@ -2614,6 +2614,7 @@ sub check_value {
|
||||||
|
|
||||||
} elsif ($type eq T_USEV6) {
|
} elsif ($type eq T_USEV6) {
|
||||||
$value = lc $value;
|
$value = lc $value;
|
||||||
|
$value = 'disabled' if $value eq 'no'; # backwards compatibility
|
||||||
return undef if !exists $ipv6_strategies{$value};
|
return undef if !exists $ipv6_strategies{$value};
|
||||||
|
|
||||||
} elsif ($type eq T_FILE) {
|
} elsif ($type eq T_FILE) {
|
||||||
|
@ -2842,9 +2843,7 @@ sub geturl {
|
||||||
## get_ip
|
## get_ip
|
||||||
######################################################################
|
######################################################################
|
||||||
sub get_ip {
|
sub get_ip {
|
||||||
my $use = lc shift;
|
my ($use, $h) = @_;
|
||||||
$use = 'disabled' if ($use eq 'no'); # backward compatibility
|
|
||||||
my $h = shift;
|
|
||||||
my ($ip, $reply, $url, $skip) = (undef, '');
|
my ($ip, $reply, $url, $skip) = (undef, '');
|
||||||
my $argvar = $use;
|
my $argvar = $use;
|
||||||
# Note that --use=firewallname uses --fw=arg, not --firewallname=arg.
|
# Note that --use=firewallname uses --fw=arg, not --firewallname=arg.
|
||||||
|
@ -3239,8 +3238,7 @@ sub get_ip_from_interface {
|
||||||
## get_ipv4
|
## get_ipv4
|
||||||
######################################################################
|
######################################################################
|
||||||
sub get_ipv4 {
|
sub get_ipv4 {
|
||||||
my $usev4 = lc(shift); ## Method to obtain IP address
|
my ($usev4, $h) = @_;
|
||||||
my $h = shift; ## Host/service making the request
|
|
||||||
my $ipv4 = undef; ## Found IPv4 address
|
my $ipv4 = undef; ## Found IPv4 address
|
||||||
my $reply = ''; ## Text returned from various methods
|
my $reply = ''; ## Text returned from various methods
|
||||||
my $url = ''; ## URL of website or firewall
|
my $url = ''; ## URL of website or firewall
|
||||||
|
@ -3349,9 +3347,7 @@ sub get_ipv4 {
|
||||||
## get_ipv6
|
## get_ipv6
|
||||||
######################################################################
|
######################################################################
|
||||||
sub get_ipv6 {
|
sub get_ipv6 {
|
||||||
my $usev6 = lc(shift); ## Method to obtain IP address
|
my ($usev6, $h) = @_;
|
||||||
$usev6 = 'disabled' if ($usev6 eq 'no'); # backward compatibility
|
|
||||||
my $h = shift; ## Host/service making the request
|
|
||||||
my $ipv6 = undef; ## Found IPv6 address
|
my $ipv6 = undef; ## Found IPv6 address
|
||||||
my $reply = ''; ## Text returned from various methods
|
my $reply = ''; ## Text returned from various methods
|
||||||
my $url = ''; ## URL of website or firewall
|
my $url = ''; ## URL of website or firewall
|
||||||
|
@ -3561,12 +3557,9 @@ sub nic_updateable {
|
||||||
my $ip = $config{$host}{'wantip'};
|
my $ip = $config{$host}{'wantip'};
|
||||||
my $ipv4 = $config{$host}{'wantipv4'};
|
my $ipv4 = $config{$host}{'wantipv4'};
|
||||||
my $ipv6 = $config{$host}{'wantipv6'};
|
my $ipv6 = $config{$host}{'wantipv6'};
|
||||||
my $use = opt('use', $host) // 'disabled';
|
my $use = opt('use', $host);
|
||||||
my $usev4 = opt('usev4', $host) // 'disabled';
|
my $usev4 = opt('usev4', $host);
|
||||||
my $usev6 = opt('usev6', $host) // 'disabled';
|
my $usev6 = opt('usev6', $host);
|
||||||
$use = 'disabled' if ($use eq 'no'); # backward compatibility
|
|
||||||
$usev6 = 'disabled' if ($usev6 eq 'no'); # backward compatibility
|
|
||||||
$use = 'disabled' if ($usev4 ne 'disabled') || ($usev6 ne 'disabled');
|
|
||||||
my $inv_ip_warn_count = opt('max-warn');
|
my $inv_ip_warn_count = opt('max-warn');
|
||||||
my $previp = $recap{$host}{'ip'} || '<nothing>';
|
my $previp = $recap{$host}{'ip'} || '<nothing>';
|
||||||
my $previpv4 = $recap{$host}{'ipv4'} || '<nothing>';
|
my $previpv4 = $recap{$host}{'ipv4'} || '<nothing>';
|
||||||
|
|
Loading…
Reference in a new issue