diff --git a/src/www/system_gateways.php b/src/www/system_gateways.php index af2c5545f..b95c7863f 100644 --- a/src/www/system_gateways.php +++ b/src/www/system_gateways.php @@ -100,24 +100,19 @@ function delete_gateway_item($id, $a_gateways) mwexec("/sbin/route delete -inet6 " . escapeshellarg($a_gateways[$id]['monitor'])); } } - if (!empty($config['interfaces'][$a_gateways[$id]['friendlyiface']])) { - if ($config['interfaces'][$a_gateways[$id]['friendlyiface']]['gateway'] == $a_gateways[$id]['name']) { - unset($config['interfaces'][$a_gateways[$id]['friendlyiface']]['gateway']); + if (!empty($config['interfaces'][$a_gateways[$id]['interface']])) { + if ($config['interfaces'][$a_gateways[$id]['interface']]['gateway'] == $a_gateways[$id]['name']) { + unset($config['interfaces'][$a_gateways[$id]['interface']]['gateway']); } } unset($config['gateways']['gateway_item'][$a_gateways[$id]['attribute']]); } -// fetch gateways and let's pretend the order is safe to use... -$a_gateways = return_gateways_array(true, false, true); -$a_gateways_arr = array(); -foreach ($a_gateways as $gname => $gw) { - /* not sure why this is rewrapped, so retain the key for status here instead */ - $gw['gname'] = $gname; - $a_gateways_arr[] = $gw; -} -$a_gateways = $a_gateways_arr; - +// fetch gateway list including active default for IPv4/IPv6 +$gateways = (new \OPNsense\Routing\Gateways())->setIfconfig(legacy_interfaces_details()); +$default_gwv4 = $gateways->getDefaultGW(return_down_gateways(), "inet"); +$default_gwv6 = $gateways->getDefaultGW(return_down_gateways(), "inet6"); +$a_gateways = array_values($gateways->gatewaysIndexedByName(true, false, true)); $gateways_status = return_gateways_status(); // form processing @@ -337,10 +332,11 @@ $( document ).ready(function() {