From 3d00ccaaab8263752cd343dea55b7bd0072a3fae Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Sun, 4 Dec 2005 18:32:28 +0000 Subject: [PATCH] * Add get_nameservers() which processes /var/etc/nameserver_$interface * Use get_nameservers() instead of nameserver.conf since we may be in a multi-wan situation * Only populate $master_list when item is <> "" --- etc/inc/system.inc | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/etc/inc/system.inc b/etc/inc/system.inc index 04d01d19c3..76f76e7348 100644 --- a/etc/inc/system.inc +++ b/etc/inc/system.inc @@ -53,17 +53,11 @@ function system_resolvconf_generate($dynupdate = false) { if (isset($syscfg['dnsallowoverride'])) { /* get dynamically assigned DNS servers (if any) */ - $nfd = @fopen("{$g['varetc_path']}/nameservers.conf", "r"); - if ($nfd) { - while (!feof($nfd)) { - $dnss = trim(fgets($nfd)); - if ($dnss) { - $resolvconf .= "nameserver $dnss\n"; - $havedns = true; - } - } - fclose($nfd); - } + $ns = get_nameservers(); + foreach($ns as $nameserver) { + $resolvconf .= "nameserver $nameserver\n"; + $havedns = true; + } } if (!$havedns && is_array($syscfg['dnsserver'])) { foreach ($syscfg['dnsserver'] as $ns) { @@ -85,6 +79,19 @@ function system_resolvconf_generate($dynupdate = false) { return 0; } +function get_nameservers() { + global $config, $g; + $master_list = array(); + $dns_lists = split("\n", `ls /var/etc/nameserver_*`); + foreach($dns_lists as $dns) { + $items = split("\n", file_get_contents($dns)); + foreach($items as $item) + if($item <> "") + $master_list[] = $item; + } + return $master_list; +} + function system_hosts_generate() { global $config, $g; if(isset($config['system']['developerspew'])) {