From 55eb3794fb4ad563102d5ab30c1d5337a599b2e5 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 25 Mar 2008 14:06:05 +0000 Subject: Rework our folder structure so that we don't have OS specific dirs, making it easier to share init and conf files per OS. --- net/Makefile | 2 ++ net/Makefile.FreeBSD | 0 net/Makefile.Linux | 0 net/Makefile.NetBSD | 1 + net/ifwatchd.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 net/Makefile.FreeBSD create mode 100644 net/Makefile.Linux create mode 100644 net/Makefile.NetBSD create mode 100644 net/ifwatchd.sh (limited to 'net') diff --git a/net/Makefile b/net/Makefile index 944c3fc3..e2eb4d36 100644 --- a/net/Makefile +++ b/net/Makefile @@ -3,4 +3,6 @@ INC= dhclient.sh dhcpcd.sh macchanger.sh macnet.sh \ ssidnet.sh system.sh wpa_supplicant.sh MK= ../mk +include ${MK}/os.mk +include Makefile.${OS} include ${MK}/scripts.mk diff --git a/net/Makefile.FreeBSD b/net/Makefile.FreeBSD new file mode 100644 index 00000000..e69de29b diff --git a/net/Makefile.Linux b/net/Makefile.Linux new file mode 100644 index 00000000..e69de29b diff --git a/net/Makefile.NetBSD b/net/Makefile.NetBSD new file mode 100644 index 00000000..cda89ef9 --- /dev/null +++ b/net/Makefile.NetBSD @@ -0,0 +1 @@ +INC+= ifwatchd.sh diff --git a/net/ifwatchd.sh b/net/ifwatchd.sh new file mode 100644 index 00000000..44c6ea31 --- /dev/null +++ b/net/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