diff options
Diffstat (limited to 'init.d.misc/wpa_supplicant.in')
-rw-r--r-- | init.d.misc/wpa_supplicant.in | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/init.d.misc/wpa_supplicant.in b/init.d.misc/wpa_supplicant.in new file mode 100644 index 00000000..3f9f1fa3 --- /dev/null +++ b/init.d.misc/wpa_supplicant.in @@ -0,0 +1,50 @@ +#!@PREFIX@/sbin/runscript +# Copyright 2009 Roy Marples <roy@marples.name> +# All rights reserved. Released under the 2-clause BSD license. + +command=/usr/sbin/wpa_supplicant +wpa_supplicant_conf=/etc/wpa_supplicant.conf +wpa_supplicant_if=${wpa_supplicant_if:+-i}${wpa_supplicant_if} +command_args="-B -c${wpa_supplicant_conf} ${wpa_supplicant_if}" +name="WPA Supplicant Daemon" + +depend() +{ + need localmount + use logger + after bootmisc modules + before dns dhcpcd +} + +find_wireless() +{ + local iface= + + for iface in /sys/class/net/*; do + if [ -e "${iface}"/wireless ]; then + echo "${iface##*/}" + return 0 + fi + done + return 1 +} + +append_wireless() +{ + local iface= + + iface=$(find_wireless) + if [ -n "${iface}" ]; then + command_args="${command_args} -i${iface}" + else + eerror "Could not find a wireless interface" + fi +} + +start_pre() +{ + case " ${command_args}" in + *" -i"*) ;; + *) append_wireless;; + esac +} |