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 wpas=/usr/sbin/wpa_supplicant wpac=/usr/bin/wpa_cli
|
||||
local actfile=/etc/wpa_supplicant/wpa_cli.sh
|
||||
|
||||
if [ ! -x "${wpas}" ]; then
|
||||
wpas=/sbin/wpa_supplicant
|
||||
wpac=/bin/wpa_cli
|
||||
fi
|
||||
[ "${RC_UNAME}" = "Linux" ] || unset wpac
|
||||
[ -e "${actfile}" ] || unset wpac
|
||||
|
||||
eval opts=\$wpa_supplicant_${IFVAR}
|
||||
case " ${opts} " in
|
||||
@ -120,12 +122,10 @@ wpa_supplicant_pre_start()
|
||||
fi
|
||||
service_set_value ctrl_dir "${ctrl_dir}"
|
||||
|
||||
actfile="/etc/wpa_supplicant/wpa_cli.sh"
|
||||
|
||||
if [ -n "${wpac}" ]; then
|
||||
opts="${opts} -W"
|
||||
else
|
||||
sleep 2 # FBSD 7.0 beta2 bug
|
||||
elif service_started devd; then
|
||||
mark_service_inactive
|
||||
fi
|
||||
start-stop-daemon --start --exec "${wpas}" \
|
||||
@ -133,10 +133,15 @@ wpa_supplicant_pre_start()
|
||||
-- ${opts} -B -i "${IFACE}" \
|
||||
-P "/var/run/wpa_supplicant-${IFACE}.pid"
|
||||
eend $? || return 1
|
||||
|
||||
# If we don't have a working wpa_cli and action file continue
|
||||
if [ -z "${wpac}" ]; then
|
||||
if service_started devd; then
|
||||
ebegin "Backgrounding ..."
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Starting wpa_supplication-0.4.0, we can get wpa_cli to
|
||||
# start/stop our scripts from wpa_supplicant messages
|
||||
@ -147,8 +152,7 @@ wpa_supplicant_pre_start()
|
||||
ebegin "Starting wpa_cli on" "${IFACE}"
|
||||
start-stop-daemon --start --exec "${wpac}" \
|
||||
--pidfile "/var/run/wpa_cli-${IFACE}.pid" \
|
||||
-- -a /etc/wpa_supplicant/wpa_cli.sh \
|
||||
-p "${ctrl_dir}" -i "${IFACE}" \
|
||||
-- -a "${actfile}" -p "${ctrl_dir}" -i "${IFACE}" \
|
||||
-P "/var/run/wpa_cli-${IFACE}.pid" -B
|
||||
if eend $?; then
|
||||
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