aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.d.misc/Makefile5
-rw-r--r--init.d.misc/dhcpcd.in17
-rw-r--r--init.d.misc/wpa_supplicant.in50
3 files changed, 70 insertions, 2 deletions
diff --git a/init.d.misc/Makefile b/init.d.misc/Makefile
index 522fd9d8..2b2a51ba 100644
--- a/init.d.misc/Makefile
+++ b/init.d.misc/Makefile
@@ -1,6 +1,7 @@
DIR= ${INITDIR}
-SRCS= avahi-dnsconfd.in avahid.in dbus.in hald.in named.in ntpd.in \
- openvpn.in polkitd.in sshd.in
+SRCS= avahi-dnsconfd.in avahid.in dhcpcd.in dbus.in \
+ hald.in named.in ntpd.in \
+ openvpn.in polkitd.in sshd.in wpa_supplicant.in
MK= ../mk
diff --git a/init.d.misc/dhcpcd.in b/init.d.misc/dhcpcd.in
new file mode 100644
index 00000000..40234cfe
--- /dev/null
+++ b/init.d.misc/dhcpcd.in
@@ -0,0 +1,17 @@
+#!@PREFIX@/sbin/runscript
+# Copyright 2009 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+
+command=/sbin/dhcpcd
+pidfile=/var/run/dhcpcd.pid
+command_args=-q
+name="DHCP Client Daemon"
+
+depend()
+{
+ provide net
+ need localmount
+ use logger
+ after bootmisc modules
+ before dns
+}
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
+}