1#!/bin/sh 2# 3# $FreeBSD: src/etc/rc.d/pflog,v 1.2 2004/08/31 14:23:51 mlaier Exp $ 4# 5 6# PROVIDE: pflog 7# REQUIRE: root mountcritlocal netif 8# BEFORE: DAEMON LOGIN 9# KEYWORD: nojail 10 11. /etc/rc.subr 12 13name="pflog" 14rcvar=`set_rcvar` 15load_rc_config $name 16stop_precmd="test -x ${pflog_program}" 17start_precmd="pflog_prestart" 18start_cmd="pflog_start" 19stop_cmd="pflog_stop" 20resync_precmd="$stop_precmd" 21resync_cmd="pflog_resync" 22status_precmd="$stop_precmd" 23status_cmd="pflog_status" 24extra_commands="resync status" 25 26pflog_prestart() 27{ 28 # load pflog kernel module if needed 29 kldload -n pf || exit 1 30 31 # set pflog0 interface to up state 32 if ! ifconfig pflog0 up; then 33 warn 'pflog: COULD NOT SET UP pflog0' 34 fi 35 36 # check for pflogd binary 37 if [ ! -x "${pflog_program:-/sbin/pflogd}" ] 38 then 39 warn 'pflog: NO PFLOGD BINARY FOUND' 40 return 1 41 fi 42} 43 44pflog_start() 45{ 46 echo -n "Enabling pflogd" 47 if ! ${pflog_program:-/sbin/pflogd} ${pflog_flags} \ 48 -f ${pflog_logfile:-/var/log/pflog}; then 49 echo " failed!" 50 else 51 echo "." 52 fi 53} 54 55pflog_stop() 56{ 57 if [ -r /var/run/pflogd.pid ]; then 58 echo "Stopping pflogd." 59 kill `cat /var/run/pflogd.pid` 60 fi 61} 62 63pflog_resync() 64{ 65 if [ -r /var/run/pflogd.pid ]; then 66 kill -SIGHUP `cat /var/run/pflogd.pid` 67 fi 68} 69 70pflog_status() 71{ 72 if [ -r /var/run/pflogd.pid ]; then 73 ps -p `cat /var/run/pflogd.pid` | tail -n 1 74 else 75 echo 'pflogd not running.' 76 fi 77} 78 79run_rc_command "$1" 80