diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip index 4fa3056cf..d245927e3 100755 --- a/src/etc/rc.newwanip +++ b/src/etc/rc.newwanip @@ -146,8 +146,9 @@ ifgroup_setup(); $cacheip_file = "/tmp/{$interface_real}_oldip"; $cacheip = trim(@file_get_contents($cacheip_file)); +$intf_ipaddr = $config['interfaces'][$interface]['ipaddr']; -if ($ip != $cacheip || !is_ipaddr($config['interfaces'][$interface]['ipaddr'])) { +if ($ip != $cacheip || (!is_ipaddr($intf_ipaddr) && $intf_ipaddr != 'dhcp')) { system_routing_configure(false, $interface); plugins_configure('monitor'); filter_configure_sync(); diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index c9fbd49a7..b61a781ea 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -84,8 +84,9 @@ system_hosts_generate(); $cacheip_file = "/tmp/{$interface_real}_oldipv6"; $cacheip = trim(@file_get_contents($cacheip_file)); +$intf_ipaddr = $config['interfaces'][$interface]['ipaddrv6']; -if ($ip != $cacheip || !is_ipaddr($config['interfaces'][$interface]['ipaddrv6'])) { +if ($ip != $cacheip || (!is_ipaddr($intf_ipaddr) && $intf_ipaddr != 'dhcp6')) { if ($ip == $cacheip) { if (in_array($config['interfaces'][$interface]['ipaddr'], array('l2tp', 'ppp', 'pppoe', 'pptp'))) { /* PPP reconnect loop avoidance */