#!/bin/sh # # p80211/wlan hotplug policy agent. # # wlan hotplug params include: # # ACTION=%s [register|remove|shutdown|startup|suspend|resume] # INTERFACE=%s # NSDNAME=%s # cd /etc/hotplug # must have ./ here or busybox shell barfs . ./hotplug.functions #DEBUG=yes export DEBUG if [ "$INTERFACE" = "" ]; then mesg Bad WLAN invocation: \$INTERFACE is not set exit 1 fi if [ "$NSDNAME" = "" ]; then mesg Bad WLAN invocation: \$NSDNAME is not set exit 1 fi debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\) if [ "$NSDNAME" = "prism2_cs" ] ; then mesg "WLAN Hotplug bypassed for pcmcia" exit 0 fi # load up the shared scripts if [ ! -f /etc/wlan/shared ] ; then mesg "/etc/wlan/shared not present, aborting" exit 1 fi ECHO=mesg . /etc/wlan/shared case $ACTION in 'register'|'resume') eval 'WLAN_ENABLE=$ENABLE_'$INTERFACE if ! is_true $WLAN_ENABLE ; then mesg "WLAN $ACTION - interface $INTERFACE not enabled, aborting" exit 1 fi debug_mesg WLAN $INTERFACE registered. wlan_bring_it_up $INTERFACE if [ $? = 0 ] ; then mesg WLAN $INTERFACE brought up successfully. if [ -x /etc/wlan/network ] ; then mesg "WLAN bringing up layer 3+ with /etc/wlan/network" /etc/wlan/network start $INTERFACE elif [ -x /etc/wlan/pre-ifup ] ; then # pre-ifup is presumed to call ifup if it # wants to...it may choose to skip it. mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup" /etc/wlan/pre-ifup $INTERFACE else mesg "WLAN bringing up layer 3+ with /sbin/ifup" /sbin/ifup $INTERFACE fi else mesg WLAN Could not bring up $INTERFACE exit 1 fi # eventually invoke net.agent on $INTERFACE w/ REGISTER ;; 'remove'|'suspend') debug_mesg WLAN $INTERFACE removed. eval 'WLAN_ENABLE=$ENABLE_'$INTERFACE if ! is_true $WLAN_ENABLE ; then mesg "WLAN $ACTION - interface $INTERFACE not enabled, aborting" exit 1 fi if [ -x /etc/wlan/network ] ; then mesg "WLAN taking down layer 3+ with /etc/wlan/network" /etc/wlan/network stop $INTERFACE elif [ -x /etc/wlan/post-ifdown ] ; then # post-ifdown is presumed to call ifdown if it # wants to...it may choose to skip it. mesg "WLAN taking down layer 3+ with /etc/wlan/post-ifdown" /etc/wlan/post-ifdown $INTERFACE else mesg "WLAN taking down layer 3+ with /sbin/ifdown" /sbin/ifdown $INTERFACE fi wlan_disable $INTERFACE ;; 'startup') # kick off wland. debug_mesg WLAN p80211 starting! start_wland ;; 'shutdown') debug_mesg WLAN p80211 shutting down! stop_wland ;; *) debug_mesg WLAN $ACTION event not supported exit 1 ;; esac