[PATCH 2/6] Update scripts to make things a little easier to read

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 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

[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux