summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorbcyrill <cyrill@bannwart.info>2012-12-19 15:16:41 +0100
committerbcyrill <cyrill@bannwart.info>2012-12-19 15:16:41 +0100
commit8436caa7549229c79de1ae34d1e0a4e39be2fbce (patch)
tree1d5d5aee3bf864669687951c43fcf715e537233f /etc
parentd13e23ec0d22ecdea862d5fcbde360c601277560 (diff)
downloadpfsense-8436caa7549229c79de1ae34d1e0a4e39be2fbce.zip
pfsense-8436caa7549229c79de1ae34d1e0a4e39be2fbce.tar.gz
Add IP alias support to GIF interfaces
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/interfaces.inc16
1 files changed, 11 insertions, 5 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index d30b137..55ca41f 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -834,13 +834,19 @@ function interface_gif_configure(&$gif, $gifkey = "") {
return -1;
$realif = get_real_interface($gif['if']);
+ $ipaddr = $gif['ipaddr'];
- if(is_ipaddrv4($gif['remote-addr'])) {
- $realifip = get_interface_ip($gif['if']);
+ if (is_ipaddrv4($gif['remote-addr'])) {
+ if (is_ipaddrv4($ipaddr))
+ $realifip = $ipaddr;
+ else
+ $realifip = get_interface_ip($gif['if']);
$realifgw = get_interface_gateway($gif['if']);
- }
- if(is_ipaddrv6($gif['remote-addr'])) {
- $realifip = get_interface_ipv6($gif['if']);
+ } else if (is_ipaddrv6($gif['remote-addr'])) {
+ if (is_ipaddrv6($ipaddr))
+ $realifip = $ipaddr;
+ else
+ $realifip = get_interface_ipv6($gif['if']);
$realifgw = get_interface_gatewayv6($gif['if']);
}
/* make sure the parent interface is up */
OpenPOWER on IntegriCloud