--- /lib/udev/net.sh 2007-02-12 10:40:46.000000000 -0500 +++ /root/einit/trunk/distro/gentoo/root/lib/udev/net.sh 2007-01-26 17:07:34.000000000 -0500 @@ -2,27 +2,65 @@ # # net.sh: udev external RUN script # -# Copyright 2007 Roy Marples -# Distributed under the terms of the GNU General Public License v2 -IFACE=$1 -ACTION=$2 +IFACE="$1" +ACTION="$2" -SCRIPT=/etc/init.d/net.$IFACE +if grep -q initng /proc/1/cmdline +then + EXEC="/sbin/ngc" + INITNG="yes" + EINIT="no" +elif grep -q einit /proc/1/cmdline +then + EXEC="/sbin/einit-control" + INITNG="no" + EINIT="yes" +else + EXEC="/etc/init.d/net.${IFACE}" + INITNG="no" + EINIT="no" +fi -# ignore interfaces that are registered after being "up" (?) -case ${IFACE} in - ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*) - exit 0 ;; +case "${ACTION}" in + start) + if [ "${INITNG}" = "yes" ] + then + ARGS="-u net/${IFACE}" + elif [ "${EINIT}" = "yes" ] + then + ARGS="rc net-${IFACE} enable" + else + ARGS="--quiet start" + fi + ;; + stop) + if [ "${INITNG}" = "yes" ] + then + ARGS="-d net/${IFACE}" + elif [ "${EINIT}" = "yes" ] + then + ARGS="rc net-${IFACE} disable" + else + ARGS="--quiet stop" + fi + ;; + *) + echo "$0: wrong arguments" >&2 + echo "Call with " >&2 + exit 1 + ;; esac -if [ ! -x "${SCRIPT}" ] ; then - logger -t udev-net.sh "${SCRIPT}: does not exist or is not executable" +export IN_HOTPLUG=1 + +if [ -x "${EXEC}" ] +then + ${EXEC} ${ARGS} + exit 0 +else + logger -t netplug "Error: Couldn't configure ${IFACE}, no ${EXEC} !" exit 1 fi -# If we're stopping then sleep for a bit in-case a daemon is monitoring -# the interface. This to try and ensure we stop after they do. -[ "${ACTION}" == "stop" ] && sleep 2 - -IN_HOTPLUG=1 "${SCRIPT}" --quiet "${ACTION}" +# vim: set ts=4