From b877d6351c614f58b68a3ab2c7b04ea7ea282961 Mon Sep 17 00:00:00 2001 From: Ermal Date: Fri, 5 Jul 2013 17:48:12 +0000 Subject: [PATCH] Fixes #2495. On trigering of rc.newwanip remove all ipaliases from the interface since they will be readded later on. This will also make sure to have the correct address order --- etc/inc/interfaces.inc | 15 +++++++++++++++ etc/rc.newwanip | 1 + 2 files changed, 16 insertions(+) diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index a953fd122b..87795f1cef 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -1964,6 +1964,21 @@ function interface_proxyarp_configure($interface = "") { } } +function interface_ipalias_cleanup($interface, $inet = "inet4") { + global $g, $config; + + if (is_array($config['virtualip']['vip'])) { + foreach ($config['virtualip']['vip'] as $vip) { + if ($vip['mode'] == "ipalias" && $vip['interface'] == $interface) { + if ($inet == "inet6" && is_ipaddrv6($vip['subnet'])) + interface_vip_bring_down($vip); + else if ($inet == "inet4" && is_ipaddrv4($vip['subnet'])) + interface_vip_bring_down($vip); + } + } + } +} + function interfaces_vips_configure($interface = "") { global $g, $config; if(isset($config['system']['developerspew'])) { diff --git a/etc/rc.newwanip b/etc/rc.newwanip index 939488bce3..b6f6a6a624 100755 --- a/etc/rc.newwanip +++ b/etc/rc.newwanip @@ -97,6 +97,7 @@ system_resolvconf_generate(true); /* write current WAN IP to file */ file_put_contents("{$g['vardb_path']}/{$interface}_ip", $curwanip); +interface_ipalias_cleanup($interface, "inet4"); link_interface_to_vips($interface, "update"); unset($gre);