Bug fixes and feature adds
- Remove extranious echo that breaks puppet - Handle restarts of multiple pflog devices correctly - Add the ability to perform actions on specific pflog devices. PR: 199150 Submitted by: jason.unovitch@gmail.com MFC after: 3 days
This commit is contained in:
parent
6d53f4a6ae
commit
120e0283fc
@ -24,30 +24,30 @@ pflog_prestart()
|
||||
{
|
||||
load_kld pflog || return 1
|
||||
|
||||
# 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 striping 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 -i $pflog_dev $rc_flags"
|
||||
rc_flags="-p $pidfile -f $pflog_logfile -i $pflog_dev $rc_flags"
|
||||
|
||||
# report we're ready to run pflogd
|
||||
return 0
|
||||
}
|
||||
|
||||
pflog_poststart() {
|
||||
# Allow child pflogd to settle
|
||||
sleep 0.10
|
||||
# More elegant(?) method for getting a unique pid
|
||||
if [ -f /var/run/pflogd.pid ]; then
|
||||
mv /var/run/pflogd.pid $pidfile
|
||||
else
|
||||
warn "/var/run/pflogd.pid does not exist. Too fast."
|
||||
fi
|
||||
}
|
||||
|
||||
pflog_poststop()
|
||||
{
|
||||
if ! ifconfig $pflog_dev down; then
|
||||
@ -70,29 +70,33 @@ pflog_resync()
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
# Check if spawning multiple pflogd
|
||||
echo "Starting pflogd: $pflog_instances"
|
||||
if [ "$pflog_instances" ] && [ -n "$pflog_instances" ]; then
|
||||
start_postcmd="pflog_poststart"
|
||||
# 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
|
||||
# Set required variables
|
||||
eval pflog_dev=\$pflog_${i}_dev
|
||||
eval pflog_logfile=\$pflog_${i}_logfile
|
||||
eval pflog_flags=\$pflog_${i}_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
|
||||
# pflogd sets a pidfile, but the name is hardcoded. Concoct a
|
||||
# unique pidfile name.
|
||||
pidfile="/var/run/pflogd.$i.pid"
|
||||
run_rc_command "$1"
|
||||
/etc/rc.d/pflog $1 $i
|
||||
done
|
||||
else
|
||||
# Typical case, spawn single instance only.
|
||||
|
Loading…
Reference in New Issue
Block a user