freebsd-nq/libexec/rc/rc.d/ipmon
Cy Schubert 51da4b19be When booting a system with WITHOUT_IPFILTER the following errors
are encountered at boot time:

rcorder: requirement `ipfs' in file `/etc/rc.d/netif' has no providers.
rcorder: requirement `ipfilter' in file `/etc/rc.d/netif' has no
providers.
rcorder: requirement `ipfilter' in file `/etc/rc.d/netwait' has no
providers.
rcorder: requirement `ipfilter' in file `/etc/rc.d/net_watchdog' has no
providers.
rcorder: requirement `ipfilter' in file `/etc/rc.d/securelevel' has no
providers.

Listing its own requrements in BEFORE rather than use REQUIRE of
non-optional scripts resolves this issue.

The issue was discovered and patched by glebius at Netflix.

Submitted by:	glebius
Reported by:	glebius
MFC after:	1 week
2020-08-11 23:36:38 +00:00

35 lines
723 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: ipmon
# REQUIRE: FILESYSTEMS hostname sysctl
# BEFORE: SERVERS
# KEYWORD: nojailvnet
. /etc/rc.subr
name="ipmon"
desc="Monitors /dev/ipl for logged packets"
rcvar="ipmon_enable"
command="/sbin/${name}"
start_precmd="ipmon_precmd"
ipmon_precmd()
{
# Continue only if ipfilter or ipnat is enabled and the
# ipfilter module is loaded.
#
if ! checkyesno ipfilter_enable && ! checkyesno ipnat_enable && ! checkyesno rc_force ; then
err 1 "${name} requires either ipfilter or ipnat enabled"
fi
if ! ${ipfilter_program:-/sbin/ipf} -V | grep -q 'Running: yes' >/dev/null 2>&1; then
err 1 "ipfilter module is not loaded"
fi
return 0
}
load_rc_config $name
run_rc_command "$1"