--- client/scripts/bsdos +++ client/scripts/bsdos @@ -1,11 +1,22 @@ #!/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 - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + 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 fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf --- client/scripts/freebsd +++ client/scripts/freebsd @@ -11,25 +11,21 @@ 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=$? - else - if [ -e /etc/resolv.conf ] ; then - ( rm /etc/resolv.conf ) - exit_status=$? - else - ( touch /etc/resolv.conf ) - 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 - 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 ) + 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 fi # If we're making confs, may as well make an ntp.conf too --- client/scripts/linux +++ 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 - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + 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 fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf --- client/scripts/netbsd +++ client/scripts/netbsd @@ -1,11 +1,22 @@ #!/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 - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + 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 fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf --- client/scripts/openbsd +++ client/scripts/openbsd @@ -1,11 +1,22 @@ #!/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 - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + 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 fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf --- client/scripts/solaris +++ client/scripts/solaris @@ -1,11 +1,22 @@ #!/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 - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + 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 fi # If we're making confs, may as well make an ntp.conf too make_ntp_conf