From e5a82d5fe658d8c607e10604536ba67bb347b2ae Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 3 May 2007 11:21:26 +0000 Subject: [PATCH] dns_sortlist and dns_options now work as documented, #175367. --- ChangeLog | 4 ++++ conf.d.BSD/net.example | 6 +----- conf.d.Linux/net.example | 1 - net/system.sh | 17 ++++++++++++++--- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f9f9d98..95e6c60c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for Gentoo System Intialization ("rc") scripts # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2 + 03 May 2007; Roy Marples : + + dns_sortlist and dns_options now work as documented, #175367. + 02 May 2007; Roy Marples : SSD_NICELEVEL can now affect the nicelevel for daemons started diff --git a/conf.d.BSD/net.example b/conf.d.BSD/net.example index 2d80c873..4acee47a 100644 --- a/conf.d.BSD/net.example +++ b/conf.d.BSD/net.example @@ -345,12 +345,8 @@ # For configuring system specifics such as domain, dns, ntp and nis servers # It's rare that you would need todo this, but you can anyway. # This is most benefit to wireless users who don't use DHCP so they can change -# their configs based on SSID. See above for more details +# their configs based on SSID. -# Setting name/domain server causes /etc/resolv.conf to be overwritten -# Note that if DHCP is used, and you want this to take precedence then -# set dhcp_SSID="nodns" -# To use dns settings such as these, dns_servers_eth0 must be set! # If you omit the _eth0 suffix, then it applies to all interfaces unless # overridden by the interface suffix. #dns_domain_eth0="your.domain" diff --git a/conf.d.Linux/net.example b/conf.d.Linux/net.example index 6934d6c1..7725f489 100644 --- a/conf.d.Linux/net.example +++ b/conf.d.Linux/net.example @@ -867,7 +867,6 @@ # This is most benefit to wireless users who don't use DHCP so they can change # their configs based on SSID. -# To use dns settings such as these, dns_servers_eth0 must be set! # If you omit the _eth0 suffix, then it applies to all interfaces unless # overridden by the interface suffix. #dns_domain_eth0="your.domain" diff --git a/net/system.sh b/net/system.sh index 68abc7fe..0d168982 100644 --- a/net/system.sh +++ b/net/system.sh @@ -2,6 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 _config_vars="$_config_vars dns_servers dns_domain dns_search" +_config_vars="$_config_vars dns_sortlist dns_options" _config_vars="$_config_vars ntp_servers nis_servers nis_domain" system_depend() { @@ -10,7 +11,7 @@ system_depend() { } _system_dns() { - local servers= domain= search= x= + local servers= domain= search= sortlist= options= x= eval servers=\$dns_servers_${IFVAR} [ -z "${servers}" ] && servers=${dns_servers} @@ -20,8 +21,15 @@ _system_dns() { eval search=\$dns_search_${IFVAR} [ -z "${search}" ] && search=${dns_search} - - [ -z "${servers}" -a -z "${domain}" -a -z "${search}" ] && return 0 + + eval sortlist=\$dns_sortlist_${IFVAR} + [ -z "${sortlist}" ] && sortlist=${dns_sortlist} + + eval options=\$dns_options_${IFVAR} + [ -z "${options}" ] && options=${dns_options} + + [ -z "${servers}" -a -z "${domain}" -a -z "${search}" \ + -a -z "${sortlist}" -a -z "${options}" ] && return 0 local buffer="# Generated by net-scripts for interface ${IFACE}\n" [ -n "${domain}" ] && buffer="${buffer}domain ${domain}\n" @@ -31,6 +39,9 @@ _system_dns() { buffer="${buffer}nameserver ${x}\n" done + [ -n "${sortlist}" ] && buffer="${buffer}sortlist ${sortlist}\n" + [ -n "${options}" ] && buffer="${buffer}options ${options}\n" + # Support resolvconf if we have it. if [ -x /sbin/resolvconf ] ; then printf "${buffer}" | resolvconf -a "${IFACE}"