Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > 436013e02728eacab5b9c575a119e4c8 > files > 7

hotplug-2002_04_01-8mdk.i586.rpm

#!/bin/bash
#
# Network hotplug policy agent for Linux 2.4 kernels
#
# Kernel NET hotplug params include:
#	
#	ACTION=%s [register or unregister]
#	INTERFACE=%s
#
# HISTORY:
#
# 25-Feb-2001	Special case ppp and similar (redhat)
# 23-Jan-2001	Log invocation of "ifup" if debugging
# 04-Jan-2001	Initial version of "new" hotplug agent.
#
# $Id: net.agent,v 1.9 2001/09/07 15:57:39 dbrownell Exp $
#

cd /etc/hotplug
. hotplug.functions
# DEBUG=yes export DEBUG

if [ "$INTERFACE" = "" ]; then
    mesg Bad NET invocation: \$INTERFACE is not set
    exit 1
fi

case $ACTION in
register)

    case $INTERFACE in
	# interfaces that are registered after being "up" (?)
	ppp*|ippp*|isdn*|plip*|lo*|irda*|tunl*)
	    debug_mesg assuming $INTERFACE is already up
	    exit 0
	    ;;
	# interfaces that are registered then brought up
	*)
	    # conform to network service
	    [ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
	    
	    CFG=/etc/sysconfig/network-scripts/ifcfg-$INTERFACE
	    PCMCIA=/var/lib/pcmcia/stab
	    
	    if [ "$AUTOMATIC_IFCFG" != no -a "${INTERFACE:0:3}" == "eth" -a ! -r $CFG ]; then
		if [ -r $PCMCIA ] && grep -q "$INTERFACE$" $PCMCIA; then
		    ONBOOT=no
		else
		    ONBOOT=yes
		fi
		debug_mesg creating config file for $INTERFACE
		cat > $CFG <<EOF
DEVICE=$INTERFACE
BOOTPROTO=dhcp
ONBOOT=$ONBOOT
EOF
            fi

	    if [ -r $CFG ]; then
		# Mandrake Linux and similar
		if [ "${INTERFACE:0:3}" == "eth" -a -x /sbin/ifplugd ] && ! grep -q '^MII_NOT_SUPPORTED' $CFG; then
		    IFPLUGD_ARGS="${IFPLUGD_ARGS=-w -b}"
		    debug_mesg invoke ifplugd $INTERFACE
		    exec /sbin/ifplugd $IFPLUGD_ARGS -i $INTERFACE >/dev/null
		fi
	    
		# RedHat and similar
		if [ -x /sbin/ifup ]; then
		    debug_mesg invoke ifup $INTERFACE
		    exec /sbin/ifup $INTERFACE >/dev/null
		else
		    mesg "how do I bring interfaces up on this distro?"
		fi
	    fi
	    ;;
    esac
    mesg $1 $ACTION event not handled
    ;;

*)
    debug_mesg NET $ACTION event not supported
    exit 1 ;;

esac