summaryrefslogtreecommitdiffstats
path: root/etc/rc.newwanip
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2010-04-27 20:47:22 +0000
committerErmal <eri@pfsense.org>2010-04-27 20:47:22 +0000
commit40655051c8c67b5d37868f1ff0ae7fcfb0dd1d0f (patch)
tree4aa33d9311f8b7169a217dde215179da8e39de0e /etc/rc.newwanip
parent24a1f9631b7e3e5caafc34baa957b0256c768586 (diff)
downloadpfsense-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-xetc/rc.newwanip11
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();
OpenPOWER on IntegriCloud