#!/bin/bash # # p80211/wlan hotplug policy agent. # # wlan hotplug params include: # # ACTION=%s [register|remove|shutdown|startup|suspend|resume] # INTERFACE=%s # NSDNAME=%s # cd /etc/hotplug . 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') debug_mesg WLAN $INTERFACE registered. wlan_bring_it_up $INTERFACE $WLAN_WEXT if [ $? = 0 ] ; then mesg WLAN $INTERFACE brought up successfully. if [ -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 fi # eventually invoke net.agent on $INTERFACE w/ REGISTER ;; 'remove'|'suspend') debug_mesg WLAN $INTERFACE removed. ;; '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