]>
Commit | Line | Data |
---|---|---|
beb097d9 WT |
1 | #!/bin/sh |
2 | # | |
3 | # Format: | |
2db6d711 | 4 | # bridge=<bridgename>:<bridgeslaves> |
beb097d9 | 5 | # |
2db6d711 | 6 | # <bridgeslaves> is a comma-separated list of physical (ethernet) interfaces |
cc02093d | 7 | # bridge without parameters assumes bridge=br0:eth0 |
beb097d9 WT |
8 | # |
9 | ||
beb097d9 WT |
10 | parsebridge() { |
11 | local v=${1}: | |
12 | set -- | |
13 | while [ -n "$v" ]; do | |
14 | set -- "$@" "${v%%:*}" | |
15 | v=${v#*:} | |
16 | done | |
beb097d9 | 17 | case $# in |
2db6d711 | 18 | 0) bridgename=br0; bridgeslaves=$iface ;; |
cc02093d | 19 | 1) die "bridge= requires two parameters" ;; |
2db6d711 | 20 | 2) bridgename=$1; bridgeslaves=$(str_replace "$2" "," " ") ;; |
cc02093d | 21 | *) die "bridge= requires two parameters" ;; |
beb097d9 WT |
22 | esac |
23 | } | |
24 | ||
2db6d711 | 25 | # Parse bridge for bridgename and bridgeslaves |
24a78b26 HH |
26 | for bridge in $(getargs bridge=); do |
27 | unset bridgename | |
28 | unset bridgeslaves | |
29 | iface=eth0 | |
beb097d9 | 30 | # Read bridge= parameters if they exist |
24a78b26 | 31 | if [ "$bridge" != "bridge" ]; then |
40e27f1b | 32 | parsebridge $bridge |
beb097d9 WT |
33 | fi |
34 | # Simple default bridge | |
35 | if [ -z "$bridgename" ]; then | |
36 | bridgename=br0 | |
2db6d711 | 37 | bridgeslaves=$iface |
beb097d9 | 38 | fi |
24a78b26 HH |
39 | echo "bridgename=$bridgename" > /tmp/bridge.${bridgename}.info |
40 | echo "bridgeslaves=\"$bridgeslaves\"" >> /tmp/bridge.${bridgename}.info | |
41 | done |