From a5937f8fed0929dbdcfc757ae5f64f579f24cb56 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 10 May 2017 07:12:47 +0200 Subject: [PATCH] rc: cluster more, PPP loop avoidance earlier... --- src/etc/rc.newwanip | 5 ++--- src/etc/rc.newwanipv6 | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip index 212728873..5940ef24d 100755 --- a/src/etc/rc.newwanip +++ b/src/etc/rc.newwanip @@ -157,13 +157,12 @@ if (isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){ * could be failing back in which case we need to switch IPs back anyhow. */ if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($config['interfaces'][$interface]['ipaddr'])) { - system_routing_configure($interface); - setup_gateways_monitor(); - if (is_ipaddr($curwanip)) { @file_put_contents("/var/db/{$interface}_cacheip", $curwanip); } + system_routing_configure($interface); + setup_gateways_monitor(); plugins_configure('vpn', false, array($interface)); plugins_configure('newwanip', false, array($interface)); rrd_configure(); diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index 1dbc7c39f..b846d5c1d 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -111,30 +111,31 @@ link_interface_to_track6($interface, "update"); system_resolvconf_generate(); system_hosts_generate(); +if (is_ipaddrv6($curwanipv6) && $curwanipv6 == $oldipv6) { + if (in_array($config['interfaces'][$interface]['ipaddrv6'], array('pppoe', 'pptp', 'ppp'))) { + /* PPP reconnect loop avoidance */ + return; + } +} + /* * We need to force sync VPNs on such even when the IP is the same for dynamic interfaces. * Even with the same IP the VPN software is unhappy with the IP disappearing, and we * could be failing back in which case we need to switch IPs back anyhow. */ if (!is_ipaddrv6($oldipv6) || $curwanipv6 != $oldipv6 || !is_ipaddrv6($config['interfaces'][$interface]['ipaddrv6'])) { - system_routing_configure($interface); - setup_gateways_monitor(); + if (is_ipaddrv6($curwanipv6)) { + @file_put_contents("/var/db/{$interface}_cacheipv6", $curwanipv6); + } - if ($curwanipv6 == $oldipv6) { - if (in_array($config['interfaces'][$interface]['ipaddrv6'], array('pppoe', 'pptp', 'ppp'))) { - /* PPP reconnect loop avoidance */ - return; - } - } elseif (is_ipaddrv6($oldipv6)) { + if ($curwanipv6 != $oldipv6 && is_ipaddrv6($oldipv6)) { if (does_interface_exist($interface_real)) { mwexec("/sbin/ifconfig {$interface_real} inet6 {$oldipv6} delete"); } } - if (is_ipaddrv6($curwanipv6)) { - @file_put_contents("/var/db/{$interface}_cacheipv6", $curwanipv6); - } - + system_routing_configure($interface); + setup_gateways_monitor(); plugins_configure('vpn', false, array($interface)); plugins_configure('newwanip', false, array($interface)); rrd_configure();