netroot: Always write an override file if an ip= line is present
authorPhilippe Seewer <philippe.seewer@bfh.ch>
Tue, 16 Jun 2009 10:08:19 +0000 (12:08 +0200)
committerPhilippe Seewer <philippe.seewer@bfh.ch>
Wed, 17 Jun 2009 06:37:39 +0000 (08:37 +0200)
Even if we use dhcp, ip= lines are allowed to contain the server-ip
for nfsroot, so we should store those variables for later use.

modules.d/40network/dhclient-script
modules.d/40network/ifup
modules.d/40network/netroot

index 7d201e0..633ad26 100755 (executable)
@@ -36,7 +36,7 @@ search=$new_domain_search
 namesrv=$new_domain_name_servers
 hostname=$new_host_name
 
-[ -f /tmp/dhclient.$interface.override ] && . /tmp/dhclient.$interface.override
+[ -f /tmp/net.$interface.override ] && . /tmp/net.$interface.override
 
 # save the offending command and let udev move on if we have an error
 trap 'log_err; exit 0' EXIT
index 4009bdc..6aa81d0 100755 (executable)
@@ -60,11 +60,6 @@ do_static() {
 }
 
 do_dhcp() {
-    for i in ip srv gw mask hostname; do
-       eval '[ "$'$i'" ] && echo '$i'="$'$i'"'
-    done > /tmp/dhclient.$netif.override
-    [ -n "$ip" ] && echo bcast= >> /tmp/dhclient.$netif.override
-
     # /sbin/dhclient-script will mark the netif up and generate the online
     # event for nfsroot
     # XXX add -V vendor class and option parsing per kernel
@@ -106,6 +101,11 @@ else
         # If this option isn't directed at our interface, skip it
        [ "$dev" = "$netif" ] || continue
 
+        # Store config for later use
+       for i in ip srv gw mask hostname; do
+           eval '[ "$'$i'" ] && echo '$i'="$'$i'"'
+       done > /tmp/net.$netif.override
+
        case $autoconf in
            static)              do_static ;;
            dhcp|on|any)         do_dhcp ;;
index 0d8f681..e57be48 100755 (executable)
@@ -51,7 +51,6 @@ if $handler $netif $netroot $NEWROOT; then
     # Network rootfs mount successful
     [ -f /tmp/dhclient.$netif.lease ] &&    cp /tmp/dhclient.$netif.lease    /tmp/net.$netif.lease
     [ -f /tmp/dhclient.$netif.dhcpopts ] && cp /tmp/dhclient.$netif.dhcpopts /tmp/net.$netif.dhcpopts
-    [ -f /tmp/dhclient.$netif.override ] && cp /tmp/dhclient.$netif.override /tmp/net.$netif.override
 
     # Save used netif for later use
     echo $netif > /tmp/net.bootdev