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