From 8b23aaecff11723184bc4761bef68ed98a3ad7af Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 10 Mar 2008 21:34:46 +0000 Subject: Add ifwatchd.sh to power the NetBSD ifwatchd program. Let wpa_supplicant work with it. --- net.NetBSD/ifwatchd.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 net.NetBSD/ifwatchd.sh (limited to 'net.NetBSD/ifwatchd.sh') diff --git a/net.NetBSD/ifwatchd.sh b/net.NetBSD/ifwatchd.sh new file mode 100644 index 00000000..44c6ea31 --- /dev/null +++ b/net.NetBSD/ifwatchd.sh @@ -0,0 +1,60 @@ +# Copyright 2007-2008 Roy Marples +# 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 $? +} -- cgit v1.2.3