From 0aa424b762d9f6043d58be8eaf39519ae35eb2df Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Sat, 10 Nov 2018 21:15:34 +0100 Subject: [PATCH] interfaces: unify find_interface_*() functions --- src/etc/inc/interfaces.inc | 52 +++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 0248d690a..ee06a6e08 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3905,9 +3905,6 @@ function link_interface_to_gif($interface) return $result; } -/* - * find_interface_ip($interface): return the interface ip (first found) - */ function find_interface_ip($interface, $exists = false) { $interface = trim($interface); /* XXX no */ @@ -3919,15 +3916,13 @@ function find_interface_ip($interface, $exists = false) $ifinfo = legacy_get_interface_addresses($interface); if (isset($ifinfo['ipaddr'])) { + /* return first address found */ return $ifinfo['ipaddr']; } return null; } -/* - * find_interface_ipv6($interface): return the interface ip (first found) - */ function find_interface_ipv6($interface, $exists = false) { $interface = trim($interface); /* XXX no */ @@ -3939,15 +3934,13 @@ function find_interface_ipv6($interface, $exists = false) $ifinfo = legacy_get_interface_addresses($interface); if (isset($ifinfo['ipaddr6'])) { + /* return first address found */ return $ifinfo['ipaddr6']; } return null; } -/* - * find_interface_ipv6_ll($interface): return the interface ipv6 link local (first found) - */ function find_interface_ipv6_ll($interface, $exists = false) { $interface = trim($interface); /* XXX no */ @@ -3962,6 +3955,7 @@ function find_interface_ipv6_ll($interface, $exists = false) if (strstr($line, ':')) { $parts = explode('/', $line); if (is_linklocal($parts[0])) { + /* return first address found */ return $parts[0]; } } @@ -3970,27 +3964,39 @@ function find_interface_ipv6_ll($interface, $exists = false) return null; } -function find_interface_subnet($interface) +function find_interface_subnet($interface, $exists = false) { - $interface = trim($interface); - if (does_interface_exist($interface)) { - $ifinfo = legacy_get_interface_addresses($interface); - if (isset($ifinfo['subnetbits'])) { - return $ifinfo['subnetbits']; - } + $interface = trim($interface); /* XXX no */ + + if (!$exists && !does_interface_exist($interface)) { + return null; } + + $ifinfo = legacy_get_interface_addresses($interface); + + if (isset($ifinfo['subnetbits'])) { + /* return first network found */ + return $ifinfo['subnetbits']; + } + return null; } -function find_interface_subnet6($interface) +function find_interface_subnet6($interface, $exists = false) { - $interface = trim($interface); - if (does_interface_exist($interface)) { - $ifinfo = legacy_get_interface_addresses($interface); - if (isset($ifinfo['subnetbits6'])) { - return $ifinfo['subnetbits6']; - } + $interface = trim($interface); /* XXX no */ + + if (!$exists && !does_interface_exist($interface)) { + return null; } + + $ifinfo = legacy_get_interface_addresses($interface); + + if (isset($ifinfo['subnetbits6'])) { + /* return first network found */ + return $ifinfo['subnetbits6']; + } + return null; }