summaryrefslogtreecommitdiff
path: root/recipes/wlan-ng/wlan-ng-utils/wlan.agent
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/wlan-ng/wlan-ng-utils/wlan.agent')
-rw-r--r--recipes/wlan-ng/wlan-ng-utils/wlan.agent105
1 files changed, 105 insertions, 0 deletions
diff --git a/recipes/wlan-ng/wlan-ng-utils/wlan.agent b/recipes/wlan-ng/wlan-ng-utils/wlan.agent
new file mode 100644
index 0000000000..d7124f3816
--- /dev/null
+++ b/recipes/wlan-ng/wlan-ng-utils/wlan.agent
@@ -0,0 +1,105 @@
+#!/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!
+;;
+'shutdown')
+ debug_mesg WLAN p80211 shutting down!
+;;
+*)
+ debug_mesg WLAN $ACTION event not supported
+ exit 1 ;;
+
+esac