diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 9304cfb40..76bbafa56 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3610,14 +3610,19 @@ function link_interface_to_gre($interface) { global $config; + $aliaslist = get_configured_ip_aliases_list(); $result = []; if (isset($config['gres']['gre'])) { foreach ($config['gres']['gre'] as $gre) { $parent = explode('_vip', $gre['if'])[0]; if (is_ipaddr($parent)) { - /* XXX requires a proper runtime setup or VIP lookup */ - $parent = convert_real_interface_to_friendly_interface_name(guess_interface_from_ip($parent)); + foreach ($aliaslist as $ip => $int) { + if ($ip == $parent) { + $parent = $int; + break; + } + } } if ($parent == $interface) { $result[] = $gre; diff --git a/src/www/interfaces_gre.php b/src/www/interfaces_gre.php index a1f8895f1..81ac8c7fa 100644 --- a/src/www/interfaces_gre.php +++ b/src/www/interfaces_gre.php @@ -31,6 +31,7 @@ require_once("guiconfig.inc"); require_once("interfaces.inc"); $a_gres = &config_read_array('gres', 'gre') ; +$a_aliaslist = get_configured_ip_aliases_list(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $input_errors = []; @@ -117,11 +118,16 @@ legacy_html_escape_form_data($a_gres); foreach ($a_gres as $gre): ?>