All pastes #639584 Raw Edit

Mine

public text v1 · immutable
#639584 ·published 2007-07-30 17:55 UTC
rendered paste body
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 </etc/fstab
+        rootmode=rw
+        while read dev mnt type opts dump pass junk; do
+            [ "$mnt" != / ] && continue
+            case "$opts" in
+                ro|ro,*|*,ro|*,ro,*)
+                   rootmode=ro
+                   ;;
+                 esac
+         done
+         exec 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