blob: 205ca65542868073915630ce2ab4df1dbe0dfbe7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/sh
# Action script to enable/disable wpa-roam interfaces in reaction to
# pm-action or ifplugd events.
#
# Copyright: Copyright (c) 2008, Kel Modderman <kel@otaku42.de>
# License: GPL-2
#
PATH=/sbin:/usr/sbin:/bin:/usr/bin
if [ ! -x /sbin/wpa_action ]; then
exit 0
fi
SELF=action_wpa
COMMAND=
IFPLUGD_IFACE=
# pm-action(8) - <action> <suspend method>
#
# On suspend|hibernate, disconnect any wpa-roam managed interfaces,
# reconnect it on resume.
case "${1}" in
suspend|hibernate)
COMMAND=disconnect
;;
resume|thaw)
COMMAND=reconnect
;;
esac
if [ -z "$COMMAND" ]; then
# ifplugd(8) - <iface> <action>
#
# If an ifplugd managed interface is brought up, disconnect any
# wpa-roam managed interfaces so that only one "roaming" interface
# remains active on the system.
IFPLUGD_IFACE="${1}"
case "${2}" in
up)
COMMAND=disconnect
;;
down)
COMMAND=reconnect
;;
*)
echo "${SELF}: unknown $0 arguments: ${@}" >&2
exit 1
;;
esac
fi
if [ -z "$COMMAND" ]; then
echo "${SELF}: unknown arguments: ${@}" >&2
exit 1
fi
for CTRL in /var/run/wpa_supplicant/*; do
[ -S "${CTRL}" ] || continue
IFACE="${CTRL#/var/run/wpa_supplicant/}"
wpa_action "${IFACE}" check || continue
if [ "${IFPLUGD_IFACE}" ] && [ "${IFPLUGD_IFACE}" = "${IFACE}" ]; then
# if ifplugd is managing this interface (not likely but..)
# do nothing
continue
fi
wpa_cli -i "${IFACE}" "${COMMAND}"
done
|