From: Roy Marples Date: Wed, 18 Jun 2014 21:12:39 +0000 (+0000) Subject: If just given a domain and no search list, make the search list the domain. X-Git-Tag: v6.4.1~57 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6bae9ebb5b2d85cb3631778ecd1fcb0186df5b42;p=thirdparty%2Fdhcpcd.git If just given a domain and no search list, make the search list the domain. This allows correct formatting when building resolv.conf. --- diff --git a/dhcpcd-hooks/20-resolv.conf b/dhcpcd-hooks/20-resolv.conf index 05316c9f..c9f7bedb 100644 --- a/dhcpcd-hooks/20-resolv.conf +++ b/dhcpcd-hooks/20-resolv.conf @@ -70,7 +70,7 @@ build_resolv_conf() add_resolv_conf() { - local x= conf="$signature$NL" i=${ra_count:-0} ra= + local x= conf="$signature$NL" i=${ra_count:-0} ra= warn=true while [ $i -ne 0 ]; do eval ra=\$ra${i}_rdnss @@ -101,24 +101,23 @@ add_resolv_conf() if [ -n "$new_domain_name" ]; then set -- $new_domain_name - new_domain_name="$1" - if valid_domainname "$new_domain_name"; then - conf="${conf}domain $new_domain_name$NL" + if valid_domainname "$1"; then + conf="${conf}domain $1$NL" else - syslog err "Invalid domain name: $new_domain_name" + syslog err "Invalid domain name: $1" fi - # Support RFC violating search in domain - if [ -z "$new_domain_search" -a -n "$2" ]; then - new_domain_search="$*" + # If there is no search this, make this one + if [ -z "$new_domain_search" ]; then + new_domain_search="$new_domain_name" + [ "$new_domain_name" = "$1" ] && warn=true fi fi - if [ -n "$new_domain_search" -a \ - "$new_domain_search" != "$new_domain_name" ] - then + if [ -n "$new_domain_search" ]; then if valid_domainname_list $new_domain_search; then conf="${conf}search $new_domain_search$NL" - else - syslog err "Invalid domain name in list: $new_domain_search" + elif ! $warn; then + syslog err "Invalid domain name in list:" \ + "$new_domain_search" fi fi for x in ${new_domain_name_servers}; do