diff -u dhclient-script dhclient-script-ubuntu: --- dhclient-script 2007-07-30 12:00:44.000000000 -0400 +++ dhclient-script-ubuntu 2007-07-30 11:49:52.000000000 -0400 @@ -14,10 +14,32 @@ make_resolv_conf() { if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then + # Find out whether we are going to mount / rw + exec 9>&0 &9 9>&- + + # Wait for /etc/resolv.conf to become writable + if [ "$rootmode" = "rw" ]; then + while [ ! -w /etc ]; do + sleep 0.1 + done + fi + local new_resolv_conf=/etc/resolv.conf.dhclient-new rm -f $new_resolv_conf if [ -n "$new_domain_name" ]; then echo search $new_domain_name >>$new_resolv_conf + else # keep 'old' search/domain scope + egrep -i '^ *[:space:]*(search|domain)' /etc/resolv.conf >> $new_resolv_conf fi if [ -n "$new_domain_name_servers" ]; then for nameserver in $new_domain_name_servers; do @@ -161,6 +183,13 @@ ifconfig $interface inet $new_ip_address $new_subnet_arg \ $new_broadcast_arg $mtu_arg + # point to point + if [ "$new_subnet_mask" == "255.255.255.255" ]; then + for router in $new_routers; do + route add -host $router dev $interface + done + fi + for router in $new_routers; do route add default dev $interface gw $router $metric_arg done