summaryrefslogtreecommitdiffstats
path: root/rc.d/net-auto-wireless
diff options
context:
space:
mode:
Diffstat (limited to 'rc.d/net-auto-wireless')
-rwxr-xr-xrc.d/net-auto-wireless65
1 files changed, 65 insertions, 0 deletions
diff --git a/rc.d/net-auto-wireless b/rc.d/net-auto-wireless
new file mode 100755
index 0000000..d6a3c44
--- /dev/null
+++ b/rc.d/net-auto-wireless
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /usr/lib/network/globals
+. /etc/conf.d/netcfg
+
+if [[ ! -x /usr/sbin/wpa_actiond ]]; then
+ echo "Please install 'wpa_actiond' to use net-auto-wireless"
+ exit 1
+fi
+
+if [ -z "${WIRELESS_INTERFACE}" ]; then
+ echo "No interface name set. Add to /etc/conf.d/netcfg a line"
+ echo " WIRELESS_INTERFACE=\"your_interface\""
+ exit 1
+fi
+
+case "$1" in
+ start)
+ if ! ck_daemon net-auto-wireless; then
+ exit_stderr "net-auto-wireless has already been started: try \"/etc/rc.d/net-auto-wireless restart\""
+ fi
+ # Ensure any device renaming has occurred as intended
+ for daemon in "${DAEMONS[@]}"; do
+ if [[ "$daemon" = "${daemon#!}" && "$daemon" = "net-rename" ]]; then
+ if ck_daemon net-rename; then
+ /etc/rc.d/net-rename start
+ fi
+ fi
+ done
+
+ stat_busy "Starting netcfg auto-wireless mode for interface ${WIRELESS_INTERFACE}"
+ /usr/bin/netcfg-wpa_actiond "${WIRELESS_INTERFACE}" >/dev/null
+ if [ $? -eq 0 ]; then
+ add_daemon net-auto-wireless
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ if ! ck_daemon net-auto-wireless; then
+ stat_busy "Stopping netcfg auto-wireless mode for interface ${WIRELESS_INTERFACE}"
+ /usr/bin/netcfg-wpa_actiond stop "${WIRELESS_INTERFACE}" >/dev/null
+ if [ $? -eq 0 ]; then
+ rm_daemon net-auto-wireless
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ ;;
+ restart)
+ "$0" stop
+ sleep 1
+ "$0" start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
+exit 0
+# vim: ft=sh ts=4 et sw=4: