--- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html