pflog revision 136224
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/pflog 136224 2004-10-07 13:55:26Z mtm $
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	if ! kldstat -v | grep -q pflog\$; then
30		if kldload pf; then
31			info 'pflog module loaded.'
32		else
33			err 1 'pflog module failed to load.'
34		fi
35	fi
36
37	# set pflog0 interface to up state
38	if ! ifconfig pflog0 up; then
39		warn 'pflog: COULD NOT SET UP pflog0'
40	fi
41
42	# check for pflogd binary
43	if [ ! -x "${pflog_program:-/sbin/pflogd}" ]
44	then
45		warn 'pflog: NO PFLOGD BINARY FOUND'
46		return 1
47	fi
48}
49
50pflog_start()
51{
52	echo -n "Enabling pflogd"
53	if ! ${pflog_program:-/sbin/pflogd} ${pflog_flags} \
54	    -f ${pflog_logfile:-/var/log/pflog}; then
55		echo " failed!"
56	else
57		echo "."
58	fi
59}
60
61pflog_stop()
62{
63	if [ -r /var/run/pflogd.pid ]; then
64		echo "Stopping pflogd."
65		kill `cat /var/run/pflogd.pid`
66	fi
67}
68
69pflog_resync()
70{
71	if [ -r /var/run/pflogd.pid ]; then
72		kill -SIGHUP `cat /var/run/pflogd.pid`
73	fi
74}
75
76pflog_status()
77{
78	if [ -r /var/run/pflogd.pid ]; then
79		ps -p `cat /var/run/pflogd.pid` | tail -n 1
80	else
81		echo 'pflogd not running.'
82	fi
83}
84
85run_rc_command "$1"
86