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