diff -ur client.orig/scripts/bsdos client/scripts/bsdos --- client.orig/scripts/bsdos 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/bsdos 2006-09-07 19:19:53.000000000 +0100 @@ -1,21 +1,22 @@ #!/bin/sh make_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 + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" + fi + for nameserver in $new_domain_name_servers; do + conf="${conf}nameserver $nameserver\n" + done + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi fi - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >> /etc/resolv.conf.dhclient - done - - mv /etc/resolv.conf.dhclient /etc/resolv.conf fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf diff -ur client.orig/scripts/freebsd client/scripts/freebsd --- client.orig/scripts/freebsd 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/freebsd 2006-09-07 19:19:32.000000000 +0100 @@ -11,38 +11,20 @@ fi make_resolv_conf() { - if [ x"$new_domain_name_servers" != x ]; then - ( 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 [ "x$new_domain_search" != x ]; then - ( echo search $new_domain_search >> /etc/resolv.conf.dhclient ) - exit_status=$? - 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=$? + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" fi for nameserver in $new_domain_name_servers; do - if [ $exit_status -ne 0 ]; then - break - fi - ( echo nameserver $nameserver >>/etc/resolv.conf.dhclient ) - exit_status=$? + conf="${conf}nameserver $nameserver\n" 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." + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf fi fi fi diff -ur client.orig/scripts/linux client/scripts/linux --- client.orig/scripts/linux 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/linux 2006-09-07 19:18:57.000000000 +0100 @@ -23,22 +23,22 @@ # of the $1 in its args. make_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 + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" + fi + for nameserver in $new_domain_name_servers; do + conf="${conf}nameserver $nameserver\n" + done + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi fi - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf.dhclient - done - - mv /etc/resolv.conf.dhclient /etc/resolv.conf fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf diff -ur client.orig/scripts/netbsd client/scripts/netbsd --- client.orig/scripts/netbsd 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/netbsd 2006-09-07 19:20:10.000000000 +0100 @@ -1,21 +1,22 @@ #!/bin/sh make_resolv_conf() { - if [ "x$new_domain_name" != x ] && [ 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 + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" + fi + for nameserver in $new_domain_name_servers; do + conf="${conf}nameserver $nameserver\n" + done + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi fi - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf.dhclient - done - - mv /etc/resolv.conf.dhclient /etc/resolv.conf fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf diff -ur client.orig/scripts/openbsd client/scripts/openbsd --- client.orig/scripts/openbsd 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/openbsd 2006-09-07 19:20:38.000000000 +0100 @@ -1,21 +1,22 @@ #!/bin/sh make_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 + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" + fi + for nameserver in $new_domain_name_servers; do + conf="${conf}nameserver $nameserver\n" + done + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi fi - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf.dhclient - done - - mv /etc/ersolv.conf.dhclient /etc/resolv.conf fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf diff -ur client.orig/scripts/solaris client/scripts/solaris --- client.orig/scripts/solaris 2006-09-07 18:53:10.476329752 +0100 +++ client/scripts/solaris 2006-09-07 19:21:12.000000000 +0100 @@ -1,21 +1,22 @@ #!/bin/sh make_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 + if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then + if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; then + conf="# Generated by dhclient for interface $interface\n" + if [ "x$new_domain_name" != x ]; then + conf="${conf}search $new_domain_name\n" + fi + for nameserver in $new_domain_name_servers; do + conf="${conf}nameserver $nameserver\n" + done + if [ -x /sbin/resolvconf ]; then + printf "$conf" | resolvconf -a "$interface" + else + printf "$conf" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi fi - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf.dhclient - done - - mv /etc/resolv.conf.dhclient /etc/resolv.conf fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf