From 1418e7a8dae74267c383bf9d74fe2f5a286bc51c Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 12 Sep 2018 09:00:00 +0200 Subject: [PATCH] src: more $config access avoidance --- src/etc/inc/util.inc | 82 ++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 48 deletions(-) diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index 1018d0110..3281843a9 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -681,28 +681,23 @@ function is_inrange($test, $start, $end) { /* XXX: return the configured carp interface list */ function get_configured_carp_interface_list($carpinterface = '', $family = 'inet') { - global $config; - $iflist = array(); - if (isset($config['virtualip']['vip'])) { - $viparr = &config_read_array('virtualip', 'vip'); - foreach ($viparr as $vip) { - switch ($vip['mode']) { - case "carp": - if (!empty($carpinterface)) { - if ($carpinterface == "{$vip['interface']}_vip{$vip['vhid']}") { - if ($family == "inet" && is_ipaddrv4($vip['subnet'])) { - return $vip['subnet']; - } elseif ($family == "inet6" && is_ipaddrv6($vip['subnet'])) { - return $vip['subnet']; - } + foreach (config_read_array('virtualip', 'vip') as $vip) { + switch ($vip['mode']) { + case 'carp': + if (!empty($carpinterface)) { + if ($carpinterface == "{$vip['interface']}_vip{$vip['vhid']}") { + if ($family == 'inet' && is_ipaddrv4($vip['subnet'])) { + return $vip['subnet']; + } elseif ($family == 'inet6' && is_ipaddrv6($vip['subnet'])) { + return $vip['subnet']; } - } else { - $iflist["{$vip['interface']}_vip{$vip['vhid']}"] = $vip['subnet']; } - break; - } + } else { + $iflist["{$vip['interface']}_vip{$vip['vhid']}"] = $vip['subnet']; + } + break; } } @@ -712,40 +707,34 @@ function get_configured_carp_interface_list($carpinterface = '', $family = 'inet /* return the configured IP aliases list */ function get_configured_ip_aliases_list($returnfullentry = false) { - global $config; - $alias_list = array(); - if (isset($config['virtualip']['vip'])) { - $viparr = &config_read_array('virtualip', 'vip'); - foreach ($viparr as $vip) { - if ($vip['mode']=="ipalias") { - if ($returnfullentry) { - $alias_list[$vip['subnet']] = $vip; - } else { - $alias_list[$vip['subnet']] = $vip['interface']; - } + foreach (config_read_array('virtualip', 'vip') as $vip) { + if ($vip['mode'] == 'ipalias') { + if ($returnfullentry) { + $alias_list[$vip['subnet']] = $vip; + } else { + $alias_list[$vip['subnet']] = $vip['interface']; } } } + return $alias_list; } /* return all configured aliases list (IP, carp, proxyarp and other) */ function get_configured_vips_list() { - global $config; - $alias_list=array(); - if (isset($config['virtualip']['vip'])) { - $viparr = &config_read_array('virtualip', 'vip'); - foreach ($viparr as $vip) { - if ($vip['mode'] == "carp") { - $alias_list[] = array("ipaddr" => $vip['subnet'], "if" => "{$vip['interface']}_vip{$vip['vhid']}"); - } else { - $alias_list[] = array("ipaddr" => $vip['subnet'], "if" => $vip['interface']); - } + $alias_list = array(); + + foreach (config_read_array('virtualip', 'vip') as $vip) { + if ($vip['mode'] == 'carp') { + $alias_list[] = array('ipaddr' => $vip['subnet'], 'if' => "{$vip['interface']}_vip{$vip['vhid']}"); + } else { + $alias_list[] = array('ipaddr' => $vip['subnet'], 'if' => $vip['interface']); } } + return $alias_list; } @@ -1231,17 +1220,13 @@ function is_URL($url) function get_staticroutes($returnsubnetsonly = false, $returnhostnames = false) { - global $config, $aliastable; - - /* Bail if there are no routes, but return an array always so callers don't have to check. */ - if (!isset($config['staticroutes']['route'])) { - return array(); - } + global $aliastable; $allstaticroutes = array(); $allsubnets = array(); + /* Loop through routes and expand aliases as we find them. */ - foreach ($config['staticroutes']['route'] as $route) { + foreach (config_read_array('staticroutes', 'route') as $route) { if (is_alias($route['network'])) { if (!isset($aliastable[$route['network']])) { continue; @@ -1267,11 +1252,12 @@ function get_staticroutes($returnsubnetsonly = false, $returnhostnames = false) $allsubnets[] = $route['network']; } } + if ($returnsubnetsonly) { return $allsubnets; - } else { - return $allstaticroutes; } + + return $allstaticroutes; } function prefer_ipv4_or_ipv6()