xref: /dragonfly/etc/rc.d/pflog (revision 265a1428)
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	kldstat -qm pf || 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