You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
937 B
Bash
51 lines
937 B
Bash
2 years ago
|
#!/bin/sh
|
||
|
|
||
|
# Action script to enable/disable wpa-roam interfaces in reaction to
|
||
|
# ifplugd events.
|
||
|
#
|
||
|
# Copyright: Copyright (c) 2008-2010, Kel Modderman <kel@otaku42.de>
|
||
|
# License: GPL-2
|
||
|
#
|
||
|
|
||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||
|
|
||
|
if [ ! -x /sbin/wpa_action ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
# 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 "$0: unknown arguments: ${@}" >&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
for CTRL in /run/wpa_supplicant/*; do
|
||
|
[ -S "${CTRL}" ] || continue
|
||
|
|
||
|
IFACE="${CTRL#/run/wpa_supplicant/}"
|
||
|
|
||
|
# skip if ifplugd is managing this interface
|
||
|
if [ "${IFPLUGD_IFACE}" = "${IFACE}" ]; then
|
||
|
continue
|
||
|
fi
|
||
|
|
||
|
if wpa_action "${IFACE}" check; then
|
||
|
wpa_cli -i "${IFACE}" "${COMMAND}"
|
||
|
fi
|
||
|
done
|