]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
If just given a domain and no search list, make the search list the domain.
authorRoy Marples <roy@marples.name>
Wed, 18 Jun 2014 21:12:39 +0000 (21:12 +0000)
committerRoy Marples <roy@marples.name>
Wed, 18 Jun 2014 21:12:39 +0000 (21:12 +0000)
This allows correct formatting when building resolv.conf.

dhcpcd-hooks/20-resolv.conf

index 05316c9fff43ab1c705fd94d927e13ff7e3a6806..c9f7bedb70a0d463e7d92fad7edcba39695a0ccb 100644 (file)
@@ -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