summaryrefslogtreecommitdiff
path: root/scripts/functions
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/functions')
-rw-r--r--scripts/functions35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/functions b/scripts/functions
index db223cd..fdd808f 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -270,3 +270,38 @@ parse_numeric() {
chmod 600 /dev/root
ROOT=/dev/root
}
+
+configure_networking()
+{
+ # support ip options see linux sources Documentation/nfsroot.txt
+ case ${IPOPTS} in
+ none|off)
+ # Do nothing
+ ;;
+ ""|on|any)
+ # Bring up device
+ ipconfig ${DEVICE}
+ ;;
+ dhcp|bootp|rarp|both)
+ ipconfig -c ${IPOPTS} -d ${DEVICE}
+ ;;
+ *)
+ ipconfig -d $IPOPTS
+
+ # grab device entry from ip option
+ NEW_DEVICE=${IPOPTS#*:*:*:*:*:*}
+ if [ "${NEW_DEVICE}" != "${IPOPTS}" ]; then
+ NEW_DEVICE=${NEW_DEVICE%:*}
+ else
+ # wrong parse, possibly only a partial string
+ NEW_DEVICE=
+ fi
+ if [ -n "${NEW_DEVICE}" ]; then
+ DEVICE="${NEW_DEVICE}"
+ fi
+ ;;
+ esac
+
+ # source relevant ipconfig output
+ . /tmp/net-${DEVICE}.conf
+}