blob: 5ec94c7c38b1659c25959453148ddd2ba9ef8045 [file] [log] [blame]
Bart De Schuymere8b0a252005-06-14 19:20:43 +00001#!/bin/bash
2#
3# init script for the Ethernet Bridge filter tables
4#
5# Written by Dag Wieers <dag@wieers.com>.
6# Modified by Rok Papez <rok.papez@arnes.si>.
7#
8# chkconfig: - 15 85
9# description: Ethernet Bridge filtering tables
10#
11# config: /etc/sysconfig/ebtables
12
13source /etc/init.d/functions
14source /etc/sysconfig/network
15
16# Check that networking is up.
17[ ${NETWORKING} = "no" ] && exit 0
18
19[ -x /sbin/ebtables ] || exit 1
20[ -x /sbin/ebtables-save ] || exit 1
21[ -x /sbin/ebtables-restore ] || exit 1
22
23[ "$1" == "save" -o -r /etc/sysconfig/ebtables ] || exit 1
24
25RETVAL=0
26prog="ebtables"
27desc="Ethernet bridge filtering"
28
29start() {
30 echo -n $"Starting $desc ($prog): "
31 /sbin/ebtables-restore < /etc/sysconfig/ebtables || RETVAL=1
32
33 if [ $RETVAL -eq 0 ]; then
34 success "$prog startup"
35 rm -f /var/lock/subsys/$prog
36 else
37 failure "$prog startup"
38 fi
39
40 echo
41 return $RETVAL
42}
43
44stop() {
45 echo -n $"Stopping $desc ($prog): "
46 /sbin/ebtables -t filter --init-table || RETVAL=1
47 /sbin/ebtables -t nat --init-table || RETVAL=1
48 /sbin/ebtables -t broute --init-table || RETVAL=1
49
50 for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -f1 -d' ') ebtables; do
51 rmmod $mod || RETVAL=1
52 done
53
54 if [ $RETVAL -eq 0 ]; then
55 success "$prog shutdown"
56 rm -f %{_localstatedir}/lock/subsys/$prog
57 else
58 failure "$prog shutdown"
59 fi
60
61 echo
62 return $RETVAL
63}
64
65restart() {
66 stop
67 start
68}
69
70save() {
71 echo -n $"Saving $desc ($prog): "
72 /sbin/ebtables-save > /etc/sysconfig/ebtables || RETVAL=1
73
74 if [ $RETVAL -eq 0 ]; then
75 success "$prog saved"
76 else
77 failure "$prog saved"
78 fi
79 echo
80}
81
82case "$1" in
83 start)
84 start
85 ;;
86 stop)
87 stop
88 ;;
89 restart|reload)
90 restart
91 ;;
92 condrestart)
93 [ -e /var/lock/subsys/$prog ] && restart
94 RETVAL=$?
95 ;;
96 save)
97 save
98 ;;
99 status)
100 /sbin/ebtables-save
101 RETVAL=$?
102 ;;
103 *)
104 echo $"Usage $0 {start|stop|restart|condrestart|save|status}"
105 RETVAL=1
106esac
107
108exit $RETVAL