summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/interfaces.inc15
-rwxr-xr-xetc/rc.newwanip1
2 files changed, 16 insertions, 0 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index a953fd1..87795f1 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 939488b..b6f6a6a 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);
OpenPOWER on IntegriCloud