updated on Wed Jan 25 00:20:47 UTC 2012
[aur-mirror.git] / vde2-svn / vde.rc
blobb368f99558811c5d9a2909d16f6ce98aef577445
1 #!/bin/bash
3 . /etc/rc.conf
4 . /etc/rc.d/functions
5 . /etc/conf.d/vde
7 case "$1" in
8 start)
9 # bring up all defined profiles
10 for i in $VDE_CONFIG; do
11 [ -e /etc/vde/$i ] && . /etc/vde/$i
12 stat_busy "Starting vde_switch $i"
13 # get options from profile
14 [ -n "$VDE_NUMPORTS" ] && OPTIONS="-n $VDE_NUMPORTS"
15 [ "$VDE_HUB" = "yes" ] && OPTIONS="$OPTIONS -x"
16 [ "$VDE_FSTP" = "yes" ] && OPTIONS="$OPTIONS -F"
17 [ -n "$VDE_MAC" ] && OPTIONS="$OPTIONS --macaddr $VDE_MAC"
18 [ -n "$VDE_PRIORITY" ] && OPTIONS="$OPTIONS --priority $VDE_PRIORITY"
19 [ -n "$VDE_HASH" ] && OPTIONS="$OPTIONS --hashsize $VDE_HASH"
20 [ -n "$VDE_SOCK" ] && OPTIONS="$OPTIONS -s $VDE_SOCK"
21 [ -n "$VDE_SOCK_MODE" ] && OPTIONS="$OPTIONS -m $VDE_SOCK_MODE"
22 [ -n "$VDE_SOCK_GROUP" ] && OPTIONS="$OPTIONS -g $VDE_SOCK_GROUP"
23 [ -n "$VDE_MANAGEMENT_SOCK" ] && OPTIONS="$OPTIONS -M $VDE_MANAGEMENT_SOCK"
24 [ -n "$VDE_MANAGEMENT_SOCK_MODE" ] && OPTIONS="$OPTIONS --mgmtmode $VDE_MANAGEMENT_SOCK_MODE"
25 [ -n "$VDE_TAP" ] && OPTIONS="$OPTIONS -t $VDE_TAP"
26 [ -n "$VDE_OPTIONS" ] && OPTIONS="$OPTIONS $VDE_OPTIONS"
27 vde_switch $OPTIONS -p /var/run/vde-$i.pid -daemon &>/dev/null
28 [ -n "$VDE_SOCK" -a -n "$VDE_SOCK_GROUP" ] && chgrp "$VDE_SOCK_GROUP" "$VDE_SOCK"
29 if [ $? -gt 0 ]; then
30 stat_fail
31 else
32 stat_done
34 if [ "$SLIRP" = "yes" ]; then
35 stat_busy "Starting slirpvde for $i"
36 [ "$SLIRP_DHCP" = "yes" ] && SP_OPTIONS="-D"
37 [ -n "$SLIRP_NETWORK" ] && SP_OPTIONS="$SP_OPTIONS -n $SLIRP_NETWORK"
38 [ -n "$SLIRP_OPTIONS" ] && SP_OPTIONS="$SP_OPTIONS $SLIRP_OPTIONS"
39 [ -n "$VDE_SOCK" ] && SP_OPTIONS="$SP_OPTIONS -s $VDE_SOCK"
40 [ -n "$VDE_SOCK_MODE" ] && SP_OPTIONS="$SP_OPTIONS -m $VDE_SOCK_MODE"
41 [ -n "$VDE_SOCK_GROUP" ] && SP_OPTIONS="$SP_OPTIONS -g $VDE_SOCK_GROUP"
42 slirpvde $SP_OPTIONS -p /var/run/slirpvde-$i.pid -daemon &>/dev/null
43 if [ $? -gt 0 ]; then
44 stat_fail
45 else
46 stat_done
48 unset OPTIONS
49 unset SP_OPTIONS
51 done
52 for i in $VDE_CONNECTION; do
53 # connect specified vde_switches
54 if [ "$(grep ^vde_plug /etc/vde/$i)" ]; then
55 stat_busy "Connecting VDE switches $i together..."
56 while read j; do
57 switch="$(echo $j | grep ^vde_plug)"
58 [ -n "$switch" ] && (dpipe $switch &)
59 done </etc/vde/$i
60 if [ $? -gt 0 ]; then
61 stat_fail
62 else
63 stat_done
66 done
67 add_daemon vde
69 stop)
70 # kill vde_plug if switches are connected
71 [ -n "$VDE_CONNECTION" ] && killall vde_plug >/dev/null 2>&1
72 for i in $VDE_CONFIG; do
73 [ -e /etc/vde/$i ] && . /etc/vde/$i
74 if [ "$SLIRP" = "yes" ]; then
75 stat_busy "Stopping slirpvde for $i"
76 kill $(cat /var/run/slirpvde-$i.pid) &> /dev/null
77 if [ $? -gt 0 ]; then
78 stat_fail
79 else
80 stat_done
82 rm /var/run/slirpvde-$i.pid &> /dev/null
84 stat_busy "Stopping vde_switch $i"
85 kill $(cat /var/run/vde-$i.pid) &> /dev/null
86 if [ $? -gt 0 ]; then
87 stat_fail
88 else
89 stat_done
91 rm /var/run/vde-$i.pid &> /dev/null
92 stat_busy "Removing $i vde sockets"
93 rm -rf $VDE_SOCK $VDE_MANAGEMENT_SOCK
94 if [ $? -gt 0 ]; then
95 stat_fail
96 else
97 stat_done
99 done
100 unset OPTIONS
101 unset SP_OPTIONS
102 [ -e /var/run/vde/gmon.out ] && rm /var/run/vde/gmon.out
103 rm_daemon vde
105 restart)
106 $0 stop
107 sleep 3
108 $0 start
111 echo "usage: $0 {start|stop|restart}"
112 esac
113 exit 0