---
 dhclient-script |    8 ++++----
 ifup            |   26 ++++++++++++++++++++------
 2 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/dhclient-script b/dhclient-script
index 0db5921..dce9878 100755
--- a/dhclient-script
+++ b/dhclient-script
@@ -16,9 +16,9 @@ case $reason in
        elif [ "$new_domain_name" ]; then
            echo "search $new_domain_name" >> /etc/resolv.conf
        fi
-       (   IFS=",";
-           for s in $new_domain_name_servers; do
-               echo "nameserver $s" >> /etc/resolv.conf
-           done ) ;;
+       for s in $new_domain_name_servers; do
+           echo "nameserver $s" >> /etc/resolv.conf
+       done
+       >/net.$interface.up ;;
     *) ;;
 esac
diff --git a/ifup b/ifup
index cf5828c..79607db 100755
--- a/ifup
+++ b/ifup
@@ -1,5 +1,5 @@
 #!/bin/sh
-echo "$*" >>/dev/net-interfaces-found
+>/net.$1
 
 # loopback is always handled the same way
 [ "$1" = "lo" ] && {
@@ -9,12 +9,26 @@ echo "$*" >>/dev/net-interfaces-found
 }
 
 # spin through the kernel command line, looking for ip= lines
-while read p; do
+for p in $(cat /proc/cmdline); do
+    [ "${p%ip=*}" ] || continue
+    p=${p#ip=}
     case $p in
-       'ip=none'|'ip=off') exit 0;; # we were told to not configure anything
-       'ip=dhcp'|'ip=on'|'ip=any') dhclient -nw "$1"; exit 0;; 
-       'ip=bootp'|'ip=rarp'|'ip=both') exit 0;; #dunno how to do this
-       ip=*) exit 0;; #to be written
+       none|off) exit 0;; # we were told to not configure anything
+       dhcp|on|any) dhclient -nw "$1"; exit 0;; 
+       bootp|rarp|both) exit 0;; #dunno how to do this
+       *) echo ${ip#ip=} | \
+           (IFS=':' read client server gw netmask hostname device autoconf
+               if [ -z "$device" -o "$device" = "$1"  ]; then
+                   case $autoconf in
+                       dhcp|on|any) dhclient -nw "$1";;
+                       none|off|'') # do some basic configuration
+                           ip link set $1 up
+                           ip addr add $client/$netmask dev $1
+                           [ "$gw" ] && ip route add default via $gw dev $1
+                           >/net.$1.up ;;
+                   esac
+               fi
+               ) ;;
        *) continue;;
     esac
 done
\ No newline at end of file
-- 
1.6.0.6

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to