]> git.ipfire.org Git - people/ms/mstpd.git/blame - bridge-stp
driver hooks for creating/deleting new MSTI
[people/ms/mstpd.git] / bridge-stp
CommitLineData
1e6d2d09
VD
1#!/bin/bash
2#
3# Script to start/stop spanning tree called from kernel
4# Make sure umask is sane
5umask 022
6
7# Set up a default search path.
8PATH="/sbin:/usr/sbin:/bin:/usr/bin"
9export PATH
10
11if [ $# -ne 2 ]; then
12 echo "Usage: bridge-stp <bridge> {start|stop}"
13 exit 1
14fi
15bridge=$1
16service=mstpd
17pid_file=/var/run/${service}.pid
18
19# Set this to the list of bridges for which MSTP should be used
20MSTP_BRIDGES="br0"
21
22# Set $pid to pids from /var/run* for {program}. $pid should be declared
23# local in the caller.
24# Returns LSB exit code for the 'status' action.
25checkpid()
26{
27 pid=
28 if [ -f "$1" ] ; then
29 local line p
30 read line < "$pid_file"
31 for p in $line ; do
32 [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
33 done
34 if [ -n "$pid" ]; then
35 return 0
36 fi
37 return 1 # "Program is dead and /var/run pid file exists"
38 fi
39 return 3 # "Program is not running"
40}
41
42case $2 in
43 start)
44 checkpid $pid_file || exit 1
45 for b in $MSTP_BRIDGES; do
46 if [ "$bridge" == "$b" ]; then
47 exit 0;
48 fi
49 done
50 exit 1 ;;
51 stop)
52 exit 0 ;;
53 *)
54 echo "Unknown action:" $2
55 echo "Usage: bridge-stp <bridge> {start|stop}"
56 exit 1
57esac