#!/bin/sh
########################################################################
# Begin $rc_base/init.d/network
#
# Description : Network Control Script
#
# Authors     : Gerard Beekmans - gerard@linuxfromscratch.org
#		Nathan Coulson - nathan@linuxfromscratch.org
#		Kevin P. Fleming - kpfleming@linuxfromscratch.org
#		Jeremy Huntwork - jhuntwork@linuxfromscratch.org
#
# Version     : 00.00
#
# Notes       : Adjusted this script to be used with the LFS LiveCD,
#		making use of the 'expert' cmdline option
#
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}
. /etc/sysconfig/network

case "${1}" in
	start)
		# Start all network interfaces
		if ! cat /proc/cmdline | grep -q "expert" ; then
			for file in ${network_devices}/ifconfig.*
			do
				interface=${file##*/ifconfig.}

				# skip if $file is * (because nothing was found)
				if [ "${interface}" = "*" ]; then
					continue
				fi

				# A subshell allows us to open files,
				# without contaminating our network bootscript with
				# unneeded variables
				(
					. ${file}
					# If ONBOOT does not equal yes, process the next file
					if [ "${ONBOOT}" != "yes" ]; then
						continue
					fi

					# Bring up ${interface}
					${network_devices}/ifup ${interface}
				)
			done
		else
			boot_mesg "Expert Mode: Skipping network setup..."
			echo_ok
		fi
		;;

	stop)
		# Reverse list
		FILES=""
		for file in ${network_devices}/ifconfig.*
		do
			FILES="${file} ${FILES}"
		done

		# Stop all network interfaces
		for file in ${FILES}
		do
			interface=${file##*/ifconfig.}

			# skip if $file is * (because nothing was found)
			if [ "${interface}" = "*" ]; then
				continue
			fi

			# A subshell allows us to open files,
			# without contaminating our network bootscript with
			# unneeded variables
			(
				. ${file}
				# If ONBOOT does not equal yes, process the next file
				if [ "${ONBOOT}" != "yes" ]; then
					continue
				fi

				# Bring up ${interface}
				${network_devices}/ifdown ${interface}
			)
		done
		;;

	restart)
		${0} stop
		sleep 1
		${0} start
		;;

	*)
		echo "Usage: ${0} {start|stop|restart}"
		exit 1
		;;
esac

# End /etc/rc.d/init.d/network
