diff options
author | Ermal <eri@pfsense.org> | 2010-04-27 20:47:22 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2010-04-27 20:47:22 +0000 |
commit | 40655051c8c67b5d37868f1ff0ae7fcfb0dd1d0f (patch) | |
tree | 4aa33d9311f8b7169a217dde215179da8e39de0e /etc/rc.newwanip | |
parent | 24a1f9631b7e3e5caafc34baa957b0256c768586 (diff) | |
download | pfsense-40655051c8c67b5d37868f1ff0ae7fcfb0dd1d0f.zip pfsense-40655051c8c67b5d37868f1ff0ae7fcfb0dd1d0f.tar.gz |
Ticket #449. Bring back the check if there is really an ip change on interface event. This avoids reloading openvpn and other sevices when actually there is no change.
Diffstat (limited to 'etc/rc.newwanip')
-rwxr-xr-x | etc/rc.newwanip | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/etc/rc.newwanip b/etc/rc.newwanip index 86e3f31..32c85e8 100755 --- a/etc/rc.newwanip +++ b/etc/rc.newwanip @@ -61,12 +61,16 @@ if(empty($argument)) { log_error("rc.newwanip: on (IP address: {$curwanip}) (interface: {$interface}) (real interface: {$interface_real})."); -if($curwanip == "0.0.0.0") { +if($curwanip == "0.0.0.0" || !is_ipaddr($curwanip)) { log_error("rc.newwanip: Failed to update {$interface} IP, restarting..."); interface_configure($interface); exit; } +$oldip = "0.0.0.0"; +if (file_exists("{$g['vardb_path']}/{$interface}_cacheip")) + $oldip = file_get_contents("{$g['vardb_path']}/{$interface}_cacheip"); + /* regenerate resolv.conf if DNS overrides are allowed */ system_resolvconf_generate(true); @@ -76,6 +80,9 @@ services_dnsupdate_process($interface); /* write current WAN IP to file */ file_put_contents("{$g['vardb_path']}/{$interface}_ip", $curwanip); +if (is_ipaddr($oldip) && $curwanip == $oldip) + exit; + /* signal dyndns update */ file_put_contents("{$g['tmp_path']}/update_dyndns", $interface); @@ -98,7 +105,7 @@ enable_rrd_graphing(); /* restart packages */ mwexec_bg("/usr/local/sbin/ntpdate_sync_once.sh"); mwexec_bg("/etc/rc.start_packages"); -log_error("{$g['product_name']} package system has detected an ip change $old_ip -> $curwanip ... Restarting packages."); +log_error("{$g['product_name']} package system has detected an ip change $oldip -> $curwanip ... Restarting packages."); /* reconfigure our gateway monitor */ setup_gateways_monitor(); |