diff options
author | Ermal <eri@pfsense.org> | 2013-07-05 17:48:12 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2013-07-05 17:48:46 +0000 |
commit | b877d6351c614f58b68a3ab2c7b04ea7ea282961 (patch) | |
tree | c7f59f9c2425a18581e51751abde65c798439399 /etc | |
parent | 5fb149ba4b3fc50d237c6e1481b1732bb0829cb1 (diff) | |
download | pfsense-b877d6351c614f58b68a3ab2c7b04ea7ea282961.zip pfsense-b877d6351c614f58b68a3ab2c7b04ea7ea282961.tar.gz |
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
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/interfaces.inc | 15 | ||||
-rwxr-xr-x | etc/rc.newwanip | 1 |
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); |