Support debian_networking boot option to use Debian's network behavior
[live-boot-grml.git] / components / 9990-netbase.sh
index 6fb7988..bae858a 100755 (executable)
@@ -9,10 +9,6 @@ Netbase ()
                return
        fi
 
-       # FIXME: stop hardcoding overloading of initramfs-tools functions
-       . /scripts/functions
-       . /lib/live/boot/9990-initramfs-tools.sh
-
        log_begin_msg "Preconfiguring networking"
 
        IFFILE="/root/etc/network/interfaces"
@@ -49,6 +45,7 @@ EOF
                        ifaddress="$(echo ${ifline} | cut -f2 -d ':')"
                        ifnetmask="$(echo ${ifline} | cut -f3 -d ':')"
                        ifgateway="$(echo ${ifline} | cut -f4 -d ':')"
+                       nameserver="$(echo ${ifline} | cut -f5 -d ':')"
 
 cat >> "${IFFILE}" << EOF
 allow-hotplug ${ifname}
@@ -66,9 +63,24 @@ cat >> "${IFFILE}" << EOF
 EOF
 
                        fi
+
+                       if [ -n "${nameserver}" ]
+                       then
+                               if [ -e "${DNSFILE}" ]
+                               then
+                                       grep -v ^nameserver "${DNSFILE}" > "${DNSFILE}.tmp"
+                                       mv "${DNSFILE}.tmp" "${DNSFILE}"
+                               fi
+
+                               echo "nameserver ${nameserver}" >> "${DNSFILE}"
+                       fi
                done
        else
-               if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
+               if [ -n "${NODHCP}" ]
+               then
+                       # force DHCP off
+                       method="manual"
+               elif [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
                then
                        # default, dhcp assigned
                        method="dhcp"
@@ -81,7 +93,7 @@ EOF
                # iterate the physical interfaces and add them to the interfaces list and also add when ethdevice= called on cmdline
                if [ "${method}" != dhcp ] || ([ ! -x /root/usr/sbin/NetworkManager ] && [ ! -x /root/usr/sbin/wicd ]) || [ ! -z "${ETHDEVICE}" ]
                then
-                       for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
+                       for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan* /sys/class/net/en*
                        do
                                [ -e ${interface} ] || continue
                                i="$(basename ${interface})"