summaryrefslogtreecommitdiffstats
path: root/etc/inc/system.inc
diff options
context:
space:
mode:
Diffstat (limited to 'etc/inc/system.inc')
-rw-r--r--etc/inc/system.inc24
1 files changed, 24 insertions, 0 deletions
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index d8c6042..964004d 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -99,6 +99,13 @@ function system_resolvconf_generate($dynupdate = false) {
if (isset($syscfg['dnsallowoverride'])) {
/* get dynamically assigned DNS servers (if any) */
+ $ns = array_unique(get_searchdomains());
+ foreach($ns as $searchserver) {
+ if($searchserver) {
+ $resolvconf .= "search {$searchserver}\n";
+ $havedns = true;
+ }
+ }
$ns = array_unique(get_nameservers());
foreach($ns as $nameserver) {
if($nameserver) {
@@ -146,6 +153,23 @@ function system_resolvconf_generate($dynupdate = false) {
return 0;
}
+function get_searchdomains() {
+ global $config, $g;
+
+ $master_list = array();
+
+ // Read in dhclient nameservers
+ $search_list = split("\n", `/bin/cat /var/etc/searchdomain_* 2>/dev/null`);
+ if (is_array($search_lists)) {
+ foreach($search_lists as $dns) {
+ if(is_hostname($dns))
+ $master_list[] = $dns;
+ }
+ }
+
+ return $master_list;
+}
+
function get_nameservers() {
global $config, $g;
$master_list = array();
OpenPOWER on IntegriCloud