From 6dcb9da10fbff5e6b9d86bf125e09afdfed3e645 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 13 Dec 2018 10:47:15 +0100 Subject: [PATCH] interfaces: simplify nameserver lookup --- src/etc/inc/system.inc | 18 +++++++++++++----- src/www/status_interfaces.php | 4 +--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index ee1cb1d1c..5663eaba9 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -288,15 +288,23 @@ function get_searchdomains() return array_unique($master_list); } -function get_nameservers($realif = '') +function get_nameservers($interface = null) { $master_list = array(); + $dns_listsv4 = array(); + $dns_listsv6 = array(); + $dns_listany = array(); - $dns_listsv4 = glob("/var/etc/nameserver_{$realif}*"); - /* XXX not a great design, please switch */ - $dns_listsv6 = glob("/var/etc/nameserver_v6{$realif}*"); + if (!empty($interface)) { + $realif = get_real_interface($interface); + $dns_listsv4 = glob("/var/etc/nameserver_{$realif}*"); + $realifv6 = get_real_interface($interface, 'inet6'); + $dns_listsv6 = glob("/var/etc/nameserver_v6{$realifv6}*"); + } else { + $dns_listany = glob('/var/etc/nameserver_*'); + } - $dns_lists = array_unique(array_merge($dns_listsv4, $dns_listsv6)); + $dns_lists = array_unique(array_merge($dns_listany, $dns_listsv4, $dns_listsv6)); foreach ($dns_lists as $fdns) { $contents = file($fdns, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); diff --git a/src/www/status_interfaces.php b/src/www/status_interfaces.php index 98b2e782c..63431dbbf 100644 --- a/src/www/status_interfaces.php +++ b/src/www/status_interfaces.php @@ -330,9 +330,7 @@ include("head.inc");