diff options
Diffstat (limited to 'client/scripts')
-rwxr-xr-x | client/scripts/bsdos | 16 | ||||
-rwxr-xr-x | client/scripts/freebsd | 40 | ||||
-rwxr-xr-x | client/scripts/linux | 18 | ||||
-rwxr-xr-x | client/scripts/netbsd | 14 | ||||
-rw-r--r-- | client/scripts/nextstep | 16 | ||||
-rw-r--r-- | client/scripts/openbsd | 16 | ||||
-rwxr-xr-x | client/scripts/solaris | 16 |
7 files changed, 105 insertions, 31 deletions
diff --git a/client/scripts/bsdos b/client/scripts/bsdos index d076d92d..fb0d43f2 100755 --- a/client/scripts/bsdos +++ b/client/scripts/bsdos @@ -1,11 +1,21 @@ #!/bin/sh make_resolv_conf() { - if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf + if [ x"$new_domain_name_servers" != x ]; then + cat /dev/null > /etc/resolv.conf.dhclient + if [ "x$new_domain_search" != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ "x$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >> /etc/resolv.conf.dhclient done + + mv /etc/resolv.conf.dhclient /etc/resolv.conf fi } diff --git a/client/scripts/freebsd b/client/scripts/freebsd index 2f0623ef..b40316eb 100755 --- a/client/scripts/freebsd +++ b/client/scripts/freebsd @@ -1,6 +1,6 @@ #!/bin/sh # -# $Id: freebsd,v 1.16 2005/03/17 20:14:56 dhankins Exp $ +# $Id: freebsd,v 1.17 2006/07/22 02:24:16 dhankins Exp $ # # $FreeBSD$ @@ -12,24 +12,38 @@ fi make_resolv_conf() { if [ x"$new_domain_name_servers" != x ]; then - if [ "x$new_domain_name" != x ]; then - ( echo search $new_domain_name >/etc/resolv.conf ) - exit_status=$? + ( cat /dev/null > /etc/resolv.conf.dhclient ) + exit_status=$? + if [ $exit_status -ne 0 ]; then + $LOGGER "Unable to create /etc/resolv.conf.dhclient: Error $exit_status" else - if [ -e /etc/resolv.conf ] ; then - ( rm /etc/resolv.conf ) + if [ "x$new_domain_search" != x ]; then + ( echo search $new_domain_search >> /etc/resolv.conf.dhclient ) exit_status=$? - else - ( touch /etc/resolv.conf ) + elif [ "x$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + ( echo search $new_domain_name >> /etc/resolv.conf.dhclient ) exit_status=$? fi - fi - if [ $exit_status -ne 0 ]; then - $LOGGER "WARNING: Unable to update resolv.conf: Error $exit_status" - else for nameserver in $new_domain_name_servers; do - ( echo nameserver $nameserver >>/etc/resolv.conf ) + if [ $exit_status -ne 0 ]; then + break + fi + ( echo nameserver $nameserver >>/etc/resolv.conf.dhclient ) + exit_status=$? done + + # If there were no errors, attempt to mv the new file into place. + if [ $exit_status -eq 0 ]; then + ( mv /etc/resolv.conf.dhclient /etc/resolv.conf ) + exit_status = $? + fi + + if [ $exit_status -ne 0 ]; then + $LOGGER "Error while writing new /etc/resolv.conf." + fi fi fi } diff --git a/client/scripts/linux b/client/scripts/linux index 31ddd2fe..787efff2 100755 --- a/client/scripts/linux +++ b/client/scripts/linux @@ -23,12 +23,22 @@ # of the $1 in its args. make_resolv_conf() { - if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf - chmod 644 /etc/resolv.conf + if [ x"$new_domain_name_servers" != x ]; then + cat /dev/null > /etc/resolv.conf.dhclient + chmod 644 /etc/resolv.conf.dhclient + if [ x"$new_domain_search" != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ x"$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >>/etc/resolv.conf.dhclient done + + mv /etc/resolv.conf.dhclient /etc/resolv.conf fi } diff --git a/client/scripts/netbsd b/client/scripts/netbsd index d226cdff..3de6b555 100755 --- a/client/scripts/netbsd +++ b/client/scripts/netbsd @@ -2,10 +2,20 @@ make_resolv_conf() { if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf + cat /dev/null > /etc/resolv.conf.dhclient + if [ "x$new_domain_search != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ "x$new_domain_name != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >>/etc/resolv.conf.dhclient done + + mv /etc/resolv.conf.dhclient /etc/resolv.conf fi } diff --git a/client/scripts/nextstep b/client/scripts/nextstep index 7600fb14..b80d175a 100644 --- a/client/scripts/nextstep +++ b/client/scripts/nextstep @@ -31,11 +31,21 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ route add default $router 1 >/dev/null 2>&1 done fi - if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf + if [ x"$new_domain_name_servers" != x ]; then + cat /dev/null > /etc/resolv.conf.dhclient + if [ "x$new_domain_search != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ "x$new_domain_name != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >>/etc/resolv.conf.dhclient done + + mv /etc/resolv.conf.dhclient /etc/resolv.conf fi exit 0 fi diff --git a/client/scripts/openbsd b/client/scripts/openbsd index d076d92d..64fead2e 100644 --- a/client/scripts/openbsd +++ b/client/scripts/openbsd @@ -1,11 +1,21 @@ #!/bin/sh make_resolv_conf() { - if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf + if x"$new_domain_name_servers" != x ]; then + cat /dev/null > /etc/resolv.conf.dhclient + if [ x"$new_domain_search" != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ x"$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >>/etc/resolv.conf.dhclient done + + mv /etc/ersolv.conf.dhclient /etc/resolv.conf fi } diff --git a/client/scripts/solaris b/client/scripts/solaris index e6187c71..c2403dc3 100755 --- a/client/scripts/solaris +++ b/client/scripts/solaris @@ -1,11 +1,21 @@ #!/bin/sh make_resolv_conf() { - if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then - echo search $new_domain_name >/etc/resolv.conf + if [ x"$new_domain_name_servers" != x ]; then + cat /dev/null > /etc/resolv.conf.dhclient + if [ x"$new_domain_search" != x ]; then + echo search $new_domain_search >> /etc/resolv.conf.dhclient + elif [ x"$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. + echo search $new_domain_name >> /etc/resolv.conf.dhclient + fi for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf + echo nameserver $nameserver >>/etc/resolv.conf.dhclient done + + mv /etc/resolv.conf.dhclient /etc/resolv.conf fi } |