From 34fbf3db2f4ad0c01dbf20303c7f0face063625e Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 5 Mar 2009 20:41:07 +0000 Subject: [PATCH] Add scripts for dhcpcd and wpa_supplicant. --- init.d.misc/Makefile | 5 ++-- init.d.misc/dhcpcd.in | 17 ++++++++++++ init.d.misc/wpa_supplicant.in | 50 +++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 init.d.misc/dhcpcd.in create mode 100644 init.d.misc/wpa_supplicant.in 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 +# 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 +# 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 +}