diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index e0000bf2a..604ec73e4 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -707,10 +707,10 @@ function interface_gre_configure(&$gre, $grekey = "") /* Do not change the order here for more see gre(4) NOTES section. */ if (is_ipaddrv6($gre['remote-addr'])) { - $realifip = get_interface_ipv6($gre['if']); + $realifip = is_ipaddr($gre['if']) ? $gre['if'] : get_interface_ipv6($gre['if']); mwexecf('/sbin/ifconfig %s inet6 tunnel %s %s', array($greif, $realifip, $gre['remote-addr'])); } else { - $realifip = get_interface_ip($gre['if']); + $realifip = is_ipaddr($gre['if']) ? $gre['if'] : get_interface_ip($gre['if']); mwexecf('/sbin/ifconfig %s tunnel %s %s', array($greif, $realifip, $gre['remote-addr'])); } if ((is_ipaddrv6($gre['tunnel-local-addr'])) || (is_ipaddrv6($gre['tunnel-remote-addr']))) { diff --git a/src/www/interfaces_gre.php b/src/www/interfaces_gre.php index 9a3eaca2b..d52b7f561 100644 --- a/src/www/interfaces_gre.php +++ b/src/www/interfaces_gre.php @@ -123,7 +123,16 @@ $main_buttons = array( $i = 0; foreach ($a_gres as $gre): ?>