[Midnightbsd-cvs] src [11686] trunk/etc/rc.d/pflog: update pflog
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Jul 8 16:26:48 EDT 2018
Revision: 11686
http://svnweb.midnightbsd.org/src/?rev=11686
Author: laffer1
Date: 2018-07-08 16:26:47 -0400 (Sun, 08 Jul 2018)
Log Message:
-----------
update pflog
Modified Paths:
--------------
trunk/etc/rc.d/pflog
Modified: trunk/etc/rc.d/pflog
===================================================================
--- trunk/etc/rc.d/pflog 2018-07-08 20:25:56 UTC (rev 11685)
+++ trunk/etc/rc.d/pflog 2018-07-08 20:26:47 UTC (rev 11686)
@@ -1,10 +1,9 @@
#!/bin/sh
#
# $MidnightBSD$
-#
# PROVIDE: pflog
-# REQUIRE: FILESYSTEMS netif
+# REQUIRE: FILESYSTEMS netif FILESYSTEMS
# KEYWORD: nojail
. /etc/rc.subr
@@ -24,14 +23,25 @@
{
load_kld pflog || return 1
- # set pflog0 interface to up state
- if ! ifconfig pflog0 up; then
- warn 'could not bring up pflog0.'
+ # create pflog_dev interface if needed
+ if ! ifconfig $pflog_dev > /dev/null 2>&1; then
+ if ! ifconfig $pflog_dev create; then
+ warn "could not create $pflog_dev."
+ return 1
+ fi
+ fi
+
+ # set pflog_dev interface to up state
+ if ! ifconfig $pflog_dev up; then
+ warn "could not bring up $pflog_dev."
return 1
fi
+ # -p flag requires stripping pidfile's leading /var/run and trailing .pid
+ pidfile=$(echo $pidfile | sed -e 's|/var/run/||' -e 's|.pid$||')
+
# prepare the command line for pflogd
- rc_flags="-f $pflog_logfile $rc_flags"
+ rc_flags="-p $pidfile -f $pflog_logfile -i $pflog_dev $rc_flags"
# report we're ready to run pflogd
return 0
@@ -39,10 +49,15 @@
pflog_poststop()
{
- if ! ifconfig pflog0 down; then
- warn 'could not bring down pflog0.'
+ if ! ifconfig $pflog_dev down; then
+ warn "could not bring down $pflog_dev."
return 1
fi
+
+ if [ "$pflog_instances" ] && [ -n "$pflog_instances" ]; then
+ rm $pidfile
+ fi
+
return 0
}
@@ -53,4 +68,37 @@
}
load_rc_config $name
-run_rc_command "$1"
+
+# Check if spawning multiple pflogd and told what to spawn
+if [ -n "$2" ]; then
+ # Set required variables
+ eval pflog_dev=\$pflog_${2}_dev
+ eval pflog_logfile=\$pflog_${2}_logfile
+ eval pflog_flags=\$pflog_${2}_flags
+ # Check that required vars have non-zero length, warn if not.
+ if [ -z $pflog_dev ]; then
+ warn "pflog_dev not set"
+ continue
+ fi
+ if [ -z $pflog_logfile ]; then
+ warn "pflog_logfile not set"
+ continue
+ fi
+
+ # Provide a unique pidfile name for pflogd -p <pidfile> flag
+ pidfile="/var/run/pflogd.$2.pid"
+
+ # Override service name and execute command
+ name=$pflog_dev
+ run_rc_command "$1"
+# Check if spawning multiple pflogd and not told what to spawn
+elif [ "$pflog_instances" ] && [ -n "$pflog_instances" ]; then
+ # Interate through requested instances.
+ for i in $pflog_instances; do
+ /etc/rc.d/pflog $1 $i
+ done
+else
+ # Typical case, spawn single instance only.
+ pflog_dev=${pflog_dev:-"pflog0"}
+ run_rc_command "$1"
+fi
More information about the Midnightbsd-cvs
mailing list