From 28df9479e1c079f2c6df709ca4463e16dba7c3fe Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Mon, 25 May 2009 16:48:01 +0200 Subject: [PATCH] make root=dhcp work --- modules.d/40network/ifup | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/modules.d/40network/ifup b/modules.d/40network/ifup index 284c9df8..d60ff197 100755 --- a/modules.d/40network/ifup +++ b/modules.d/40network/ifup @@ -93,20 +93,27 @@ ip_to_var() { [ -n "$autoconf" ] || autoconf=off } -# spin through the kernel command line, looking for ip= lines -for p in $(cat /proc/cmdline); do - [ -n "${p%ip=*}" ] && continue - ip_to_var ${p#ip=} - - # If this option isn't directed at our interface, skip it - [ "$dev" = "$netif" ] || continue - - case $autoconf in - static) do_static ;; - dhcp|on|any) do_dhcp ;; - bootp|rarp|both) die "autoconfig type $autoconf is not supported" ;; - ''|none|off) ;; - esac - break -done +root=$(getarg root) +ip=$(getarg ip) + +if [ "$root" = "dhcp" -a -z "$ip" ]; then + do_dhcp; +else + # spin through the kernel command line, looking for ip= lines + for p in $(cat /proc/cmdline); do + [ -n "${p%ip=*}" ] && continue + ip_to_var ${p#ip=} + + # If this option isn't directed at our interface, skip it + [ "$dev" = "$netif" ] || continue + + case $autoconf in + static) do_static ;; + dhcp|on|any) do_dhcp ;; + bootp|rarp|both) die "autoconfig type $autoconf is not supported" ;; + ''|none|off) ;; + esac + break + done +fi exit 0