Ticket #2247: wpa_actions

File wpa_actions, 1.5 KB (added by Eloi Primaux, 18 years ago)
Line 
1#!/bin/sh
2
3IFACE=$1
4EVENT=$2
5
6. /etc/sysconfig/wpa_supplicant/wpa_service.conf
7
8NETWORKDIR=/etc/sysconfig/wpa_supplicant
9SERVICESDIR=/etc/sysconfig/network-devices/services
10
11. /etc/sysconfig/rc
12. $rc_functions
13. $IFCONFIG
14
15. /etc/rc.d/init.d/functions
16. /etc/sysconfig/network-devices/ifconfig.$IFACE/wpa-service
17
18
19function verbose {
20 [ "$VERBOSE" == "YES" ] && boot_mesg $1 "$2"
21}
22
23function test_fail {
24 [ "$1" != 0 ] && RET="FAIL:$1"
25 verbose '' " $RET"
26 if [[ $RET = FAIL* ]]; then
27 echo_failure ; return 2
28 else
29 return $1
30 fi
31}
32
33function get_ssid {
34 RET=`$WPA_CLIENT_NAME -i$IFACE status | grep ^ssid= | cut -f2- -d=` &> /dev/null
35}
36
37if [ "$EVENT" == "CONNECTED" ]; then
38 get_ssid
39 SSID=$RET
40 verbose '' "SSID is $SSID"
41 # configure network, signal DHCP client, etc.
42 # If special networks definition exist, use it
43 if [ -f "$NETWORKDIR/$SSID" ]; then
44 IFCONFIG="$NETWORKDIR/$SSID"
45 . $IFCONFIG
46 export IFCONFIG
47 $SERVICESDIR/$SERVICE $IFACE up
48 else
49 IFCONFIG="$NETWORKDIR/AUTO"
50 . $IFCONFIG
51 export IFCONFIG
52 $SERVICESDIR/$SERVICE $IFACE up
53 fi
54 exit $?
55fi
56
57if [ "$EVENT" == "DISCONNECTED" ]; then
58 # remove network configuration, if needed
59 get_ssid
60 SSID=$RET
61 # configure network, signal DHCP client, etc.
62 # If special networks definition exist, use it
63 if [ -f "$NETWORKDIR/$SSID" ]; then
64 . $NETWORKDIR/$SSID
65 $SERVICESDIR/$SERVICE $IFACE down
66 else
67 IFCONFIG="$NETWORKDIR/AUTO"
68 . $IFCONFIG
69 export IFCONFIG
70 $SERVICESDIR/$SERVICE $IFACE down
71 fi
72 exit $?
73fi