From dc98645fd42873dfeda01188243565e2f977f4a9 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 7 Mar 2014 16:33:03 +0100 Subject: [PATCH] setddns.pl: Use GetDyndnsRedIP from general-functions.pl. http://forum.ipfire.org/index.php?topic=7504.msg63721#msg63721 --- src/scripts/setddns.pl | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/src/scripts/setddns.pl b/src/scripts/setddns.pl index 12c0f1df5f..f97e75074b 100644 --- a/src/scripts/setddns.pl +++ b/src/scripts/setddns.pl @@ -44,37 +44,15 @@ if (open(FILE, "$filename")) { # ignore monthly update if not in minimize update mode exit 0 if (($settings{'MINIMIZEUPDATES'} ne 'on') && ($ARGV[1] eq '-m')); -my $ip; -if (open(IP, "${General::swroot}/red/local-ipaddress")) { - $ip = ; - close(IP); - chomp $ip; -} else { - &General::log('Dynamic DNS failure : unable to open local-ipaddress file.'); - exit 0; -} +my $ip = &General::GetDyndnsRedIP(); -#If IP is reserved network, we are behind a router. May we ask for our real public IP ? -if ( &General::IpInSubnet ($ip,'10.0.0.0','255.0.0.0') || - &General::IpInSubnet ($ip,'172.16.0.0','255.240.0.0') || - &General::IpInSubnet ($ip,'192.168.0.0','255.255.0.0')) { - # We can, but are we authorized by GUI ? - if ($settings{'BEHINDROUTER'} eq 'FETCH_IP') { - if ($ARGV[0] eq '-f'){ - $settings{'BEHINDROUTERWAITLOOP'} = -1; # When forced option, fectch PublicIP now - } - - # Increment counter modulo 4. When it is zero, fetch ip else exit - # This divides by 4 the requests to the dyndns server. - $settings{'BEHINDROUTERWAITLOOP'} = ($settings{'BEHINDROUTERWAITLOOP'}+1) %4; - &General::writehash("${General::swroot}/ddns/settings", \%settings); - exit 0 if ( $settings{'BEHINDROUTERWAITLOOP'} ne 0 ); - my $RealIP = &General::FetchPublicIp; - $ip = (&General::validip ($RealIP) ? $RealIP : 'unavailable'); - &General::log ("Dynamic DNS public router IP is:$ip"); - } +if ($ip eq "unavailable") { + &General::log("Dynamic DNS error: RED/Public IP is unavailable"); + exit(0); } +&General::log("Dynamic DNS public router IP is: $ip"); + if ($ARGV[0] eq '-f') { unlink ($cachefile); # next regular calls will try again if this force update fails. } else { -- 2.39.2