###############################################################################
use strict;
+use experimental 'smartmatch';
# enable only the following on debugging purpose
#use warnings;
# Config file to store the configured ddns providers.
my $datafile = "${General::swroot}/ddns/config";
-# Dynamic ddns programm call.
-my @ddnsprog = ("/usr/bin/ddns", "--config",
- "/var/ipfire/ddns/ddns.conf",
- "update-all");
+# Call the ddnsctrl helper binary to perform the update.
+my @ddnsprog = ("/usr/local/bin/ddnsctrl", "update-all");
my %settings=();
my $errormessage = '';
my $use_token = 0;
- # Handle token based auth for various providers.
- if ($provider ~~ ["dns.lightningwirelabs.com", "entrydns.net", "regfish.com",
- "spdns.de", "zzzz.io"] && $username eq "token") {
+ # Check if token based auth is configured.
+ if ($username eq "token") {
$use_token = 1;
+ }
# Handle token auth for freedns.afraid.org and regfish.com.
- } elsif ($provider ~~ ["freedns.afraid.org", "regfish.com"] && $password eq "") {
+ if ($provider ~~ ["freedns.afraid.org", "regfish.com"] && $password eq "") {
$use_token = 1;
$password = $username;