diff --git a/ChangeLog.md b/ChangeLog.md index f7b0f67..e7f8358 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -126,6 +126,8 @@ repository history](https://github.com/ddclient/ddclient/commits/master). [#691](https://github.com/ddclient/ddclient/pull/691) * `infomaniak`: Fixed incorrect parsing of server response. [#692](https://github.com/ddclient/ddclient/pull/692) + * `infomaniak`: Fixed incorrect handling of `nochg` responses. + [#723](https://github.com/ddclient/ddclient/pull/723) * `regfishde`: Fixed IPv6 support. [#691](https://github.com/ddclient/ddclient/pull/691) * `easydns`: IPv4 and IPv6 addresses are now updated separately to be diff --git a/ddclient.in b/ddclient.in index 6658bae..5e5fa16 100755 --- a/ddclient.in +++ b/ddclient.in @@ -7320,7 +7320,7 @@ sub nic_infomaniak_update { for my $v (4, 6) { my $ip = delete $config{$h}{"wantipv$v"}; if (!defined $ip) { - debug("ipv%d not wanted, skipping", $v); + debug("IPv$v not wanted, skipping"); next; } info("setting IP address to %s for %s", $ip, $h); @@ -7331,10 +7331,10 @@ sub nic_infomaniak_update { # IP changed => good # No domain name => Validation failed my %statuses = ( - 'good' => (1, sprintf("IP set to %s for %s", $ip, $h)), - 'nochg' => (1, sprintf("IP already set to %s for %s", $ip, $h)), - 'nohost' => (0, sprintf("Bad domain name %s or bad IP %s", $h, $ip)), - 'badauth' => (0, sprintf("Bad authentication for %s", $h)), + 'good' => [1, "IP set to $ip for $h"], + 'nochg' => [1, "IP already set to $ip for $h"], + 'nohost' => [0, "Bad domain name $h or bad IP $ip"], + 'badauth' => [0, "Bad authentication for $h"], ); my $reply = geturl( proxy => opt('proxy'), @@ -7346,7 +7346,7 @@ sub nic_infomaniak_update { (my $body = $reply) =~ s/^.*?\n\n//s; my ($status) = split(/ /, $body, 2); my ($ok, $msg) = - $statuses{$status} // (0, sprintf("Unknown reply from Infomaniak: %s", $body)); + @{$statuses{$status} // [0, "Unknown reply from Infomaniak: $body"]}; if (!$ok) { failed($msg); next;