diff --git a/README.md b/README.md index ddaffdd..926dce3 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Dynamic DNS services currently supported include: dnsexit - See https://dnsexit.com/ for details 1984.is - See https://www.1984.is/product/freedns/ for details Njal.la - See https://njal.la/docs/ddns/ + regfish.de - See https://www.regfish.de/domains/dyndns/ for details `ddclient` now supports many cable and DSL broadband routers. diff --git a/ddclient.conf.in b/ddclient.conf.in index d6bf96c..97b6b59 100644 --- a/ddclient.conf.in +++ b/ddclient.conf.in @@ -315,3 +315,10 @@ ssl=yes # use ssl-support. Works with # password=mypassword # quietreply=no|yes # my-domain.com + +## +## regfish.de (www.regfish.de/) +## +# protocol=regfishde, +# password=mypassword +# my-domain.com diff --git a/ddclient.in b/ddclient.in index e5d0d0c..86f8602 100755 --- a/ddclient.in +++ b/ddclient.in @@ -533,6 +533,10 @@ my %variables = ( 'script' => setv(T_STRING, 0, 1, '/RemoteUpdate.sv', undef), 'min-error-interval' => setv(T_DELAY, 0, 0, interval('8m'), 0), }, + 'regfishde-common-defaults' => { + 'server' => setv(T_FQDNP, 1, 0, 'dyndns.regfish.de', undef), + 'login' => setv(T_LOGIN, 0, 0, 0, 'unused', undef), + }, ); my %services = ( '1984' => { @@ -895,6 +899,15 @@ my %services = ( $variables{'service-common-defaults'}, ), }, + 'regfishde' => { + 'updateable' => undef, + 'update' => \&nic_regfishde_update, + 'examples' => \&nic_regfishde_examples, + 'variables' => merge( + $variables{'regfishde-common-defaults'}, + $variables{'service-common-defaults'}, + ), + }, ); $variables{'merged'} = { map({ %{$services{$_}{'variables'}} } keys(%services)), @@ -7159,6 +7172,67 @@ sub nic_keysystems_update { } } +###################################################################### +## nic_regfishde_examples +###################################################################### +sub nic_regfishde_examples { + return < opt('proxy'), url => $url); + + # No response, give error + if (!defined($reply) || !$reply) { + failed("regfish.de updating %s: failed: %s.", $h, $config{$h}{'server'}); + last; + } + last if !header_ok($h, $reply); + + if ($reply =~ /success/) + { + $config{$h}{'ip'} = $ip; + $config{$h}{'mtime'} = $now; + $config{$h}{'status'} = 'good'; + success("updating %s: good: IP address set to %s", $h, $ip); + } + else + { + $config{$h}{'status'} = 'failed'; + failed("updating %s: Server said: '$reply'", $h); + } + } +} # Execute main() if this file is run as a script or run via PAR (https://metacpan.org/pod/PAR), # otherwise do nothing. This "modulino" pattern makes it possible to import this file as a module