Add ifwatchd.sh to power the NetBSD ifwatchd program. Let wpa_supplicant work with it.
This commit is contained in:
parent
f20099bc33
commit
8b23aaecff
5
net.NetBSD/Makefile
Normal file
5
net.NetBSD/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
DIR= ${RC_LIB}/net
|
||||||
|
INC= ifwatchd.sh
|
||||||
|
|
||||||
|
MK= ../mk
|
||||||
|
include ${MK}/scripts.mk
|
60
net.NetBSD/ifwatchd.sh
Normal file
60
net.NetBSD/ifwatchd.sh
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Copyright 2007-2008 Roy Marples <roy@marples.name>
|
||||||
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
|
_config_vars="$_config_vars plug_timeout"
|
||||||
|
|
||||||
|
ifwatchd_depend()
|
||||||
|
{
|
||||||
|
program start /usr/sbin/ifwatchd
|
||||||
|
after macnet rename wireless
|
||||||
|
before interface
|
||||||
|
provide plug
|
||||||
|
}
|
||||||
|
|
||||||
|
ifwatchd_pre_start()
|
||||||
|
{
|
||||||
|
# We don't start ifwatchd if we're being called from the background
|
||||||
|
yesno ${IN_BACKGROUND} && return 0
|
||||||
|
|
||||||
|
_exists || return 0
|
||||||
|
|
||||||
|
# We need a valid MAC address
|
||||||
|
# It's a basic test to ensure it's not a virtual interface
|
||||||
|
if ! _get_mac_address >/dev/null 2>&1; then
|
||||||
|
vewarn "ifwatchd only works on interfaces with a valid MAC address"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ebegin "Starting ifwatchd on ${IFACE}"
|
||||||
|
|
||||||
|
# Mark the us as inactive so ifwatchd can restart us
|
||||||
|
mark_service_inactive
|
||||||
|
|
||||||
|
# Start ifwatchd
|
||||||
|
export IN_BACKGROUND=yes
|
||||||
|
start-stop-daemon --start --exec /usr/sbin/ifwatchd \
|
||||||
|
-- -c "${RC_LIBDIR}/sh/ifwatchd-carrier.sh" \
|
||||||
|
-n "${RC_LIBDIR}/sh/ifwatchd-nocarrier.sh" "${IFACE}"
|
||||||
|
unset IN_BACKGROUND
|
||||||
|
eend "$?" || return 1
|
||||||
|
|
||||||
|
einfo "Backgrounding ..."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
ifwatchd_stop()
|
||||||
|
{
|
||||||
|
yesno ${IN_BACKGROUND} && return 0
|
||||||
|
|
||||||
|
start-stop-daemon --test --quiet --stop --exec /usr/sbin/ifwatchd \
|
||||||
|
-- -c "${RC_LIBDIR}/sh/ifwatchd-carrier.sh" \
|
||||||
|
-n "${RC_LIBDIR}/sh/ifwatchd-nocarrier.sh" "${IFACE}" \
|
||||||
|
|| return 0
|
||||||
|
|
||||||
|
ebegin "Stopping ifwatchd on" "${IFACE}"
|
||||||
|
start-stop-daemon --stop --exec /usr/sbin/ifwatchd \
|
||||||
|
-- -c "${RC_LIBDIR}/sh/ifwatchd-carrier.sh" \
|
||||||
|
-n "${RC_LIBDIR}/sh/ifwatchd-nocarrier.sh" "${IFACE}" \
|
||||||
|
&& return 0
|
||||||
|
eend $?
|
||||||
|
}
|
@ -47,12 +47,14 @@ wpa_supplicant_pre_start()
|
|||||||
{
|
{
|
||||||
local opts= cfgfile= ctrl_dir= wireless=true
|
local opts= cfgfile= ctrl_dir= wireless=true
|
||||||
local wpas=/usr/sbin/wpa_supplicant wpac=/usr/bin/wpa_cli
|
local wpas=/usr/sbin/wpa_supplicant wpac=/usr/bin/wpa_cli
|
||||||
|
local actfile=/etc/wpa_supplicant/wpa_cli.sh
|
||||||
|
|
||||||
if [ ! -x "${wpas}" ]; then
|
if [ ! -x "${wpas}" ]; then
|
||||||
wpas=/sbin/wpa_supplicant
|
wpas=/sbin/wpa_supplicant
|
||||||
wpac=/bin/wpa_cli
|
wpac=/bin/wpa_cli
|
||||||
fi
|
fi
|
||||||
[ "${RC_UNAME}" = "Linux" ] || unset wpac
|
[ "${RC_UNAME}" = "Linux" ] || unset wpac
|
||||||
|
[ -e "${actfile}" ] || unset wpac
|
||||||
|
|
||||||
eval opts=\$wpa_supplicant_${IFVAR}
|
eval opts=\$wpa_supplicant_${IFVAR}
|
||||||
case " ${opts} " in
|
case " ${opts} " in
|
||||||
@ -120,12 +122,10 @@ wpa_supplicant_pre_start()
|
|||||||
fi
|
fi
|
||||||
service_set_value ctrl_dir "${ctrl_dir}"
|
service_set_value ctrl_dir "${ctrl_dir}"
|
||||||
|
|
||||||
actfile="/etc/wpa_supplicant/wpa_cli.sh"
|
|
||||||
|
|
||||||
if [ -n "${wpac}" ]; then
|
if [ -n "${wpac}" ]; then
|
||||||
opts="${opts} -W"
|
opts="${opts} -W"
|
||||||
else
|
elif service_started devd; then
|
||||||
sleep 2 # FBSD 7.0 beta2 bug
|
|
||||||
mark_service_inactive
|
mark_service_inactive
|
||||||
fi
|
fi
|
||||||
start-stop-daemon --start --exec "${wpas}" \
|
start-stop-daemon --start --exec "${wpas}" \
|
||||||
@ -133,10 +133,15 @@ wpa_supplicant_pre_start()
|
|||||||
-- ${opts} -B -i "${IFACE}" \
|
-- ${opts} -B -i "${IFACE}" \
|
||||||
-P "/var/run/wpa_supplicant-${IFACE}.pid"
|
-P "/var/run/wpa_supplicant-${IFACE}.pid"
|
||||||
eend $? || return 1
|
eend $? || return 1
|
||||||
|
|
||||||
|
# If we don't have a working wpa_cli and action file continue
|
||||||
if [ -z "${wpac}" ]; then
|
if [ -z "${wpac}" ]; then
|
||||||
|
if service_started devd; then
|
||||||
ebegin "Backgrounding ..."
|
ebegin "Backgrounding ..."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Starting wpa_supplication-0.4.0, we can get wpa_cli to
|
# Starting wpa_supplication-0.4.0, we can get wpa_cli to
|
||||||
# start/stop our scripts from wpa_supplicant messages
|
# start/stop our scripts from wpa_supplicant messages
|
||||||
@ -147,8 +152,7 @@ wpa_supplicant_pre_start()
|
|||||||
ebegin "Starting wpa_cli on" "${IFACE}"
|
ebegin "Starting wpa_cli on" "${IFACE}"
|
||||||
start-stop-daemon --start --exec "${wpac}" \
|
start-stop-daemon --start --exec "${wpac}" \
|
||||||
--pidfile "/var/run/wpa_cli-${IFACE}.pid" \
|
--pidfile "/var/run/wpa_cli-${IFACE}.pid" \
|
||||||
-- -a /etc/wpa_supplicant/wpa_cli.sh \
|
-- -a "${actfile}" -p "${ctrl_dir}" -i "${IFACE}" \
|
||||||
-p "${ctrl_dir}" -i "${IFACE}" \
|
|
||||||
-P "/var/run/wpa_cli-${IFACE}.pid" -B
|
-P "/var/run/wpa_cli-${IFACE}.pid" -B
|
||||||
if eend $?; then
|
if eend $?; then
|
||||||
ebegin "Backgrounding ..."
|
ebegin "Backgrounding ..."
|
||||||
|
2
sh.NetBSD/.gitignore
vendored
Normal file
2
sh.NetBSD/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ifwatchd-carrier.sh
|
||||||
|
ifwatchd-nocarrier.sh
|
6
sh.NetBSD/Makefile
Normal file
6
sh.NetBSD/Makefile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
DIR= ${RC_LIB}/sh
|
||||||
|
SRCS= ifwatchd-carrier.sh.in ifwatchd-nocarrier.sh.in
|
||||||
|
BIN= ifwatchd-carrier.sh ifwatchd-nocarrier.sh
|
||||||
|
|
||||||
|
MK= ../mk
|
||||||
|
include ${MK}/scripts.mk
|
5
sh.NetBSD/ifwatchd-carrier.sh.in
Normal file
5
sh.NetBSD/ifwatchd-carrier.sh.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!@SHELL@
|
||||||
|
# Wrapper for ifwatchd(8)
|
||||||
|
|
||||||
|
export IN_BACKGROUND=yes
|
||||||
|
@PREFIX@@SYSCONFDIR@/init.d/net.$1 --quiet start
|
5
sh.NetBSD/ifwatchd-nocarrier.sh.in
Normal file
5
sh.NetBSD/ifwatchd-nocarrier.sh.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!@SHELL@
|
||||||
|
# Wrapper for ifwatchd(8)
|
||||||
|
|
||||||
|
export IN_BACKGROUND=yes
|
||||||
|
@PREFIX@@SYSCONFDIR@/init.d/net.$1 --quiet stop
|
Loading…
Reference in New Issue
Block a user