Deleted Added
full compact
bridge (159138) bridge (165664)
1#!/bin/sh
2#
3# Copyright (c) 2006 The FreeBSD Project. All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8# 1. Redistributions of source code must retain the above copyright

--- 8 unchanged lines hidden (view full) ---

17# IN NO EVENT SHALL THE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT,
18# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24#
1#!/bin/sh
2#
3# Copyright (c) 2006 The FreeBSD Project. All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8# 1. Redistributions of source code must retain the above copyright

--- 8 unchanged lines hidden (view full) ---

17# IN NO EVENT SHALL THE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT,
18# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24#
25# $FreeBSD: head/etc/rc.d/bridge 159138 2006-06-01 11:01:54Z thompsa $
25# $FreeBSD: head/etc/rc.d/bridge 165664 2006-12-30 22:53:20Z yar $
26#
27
28# PROVIDE: bridge
29# REQUIRE: netif
30# KEYWORD: nojail
31
32. /etc/rc.subr
33. /etc/network.subr
34
35name="bridge"
36start_cmd="bridge_start"
37stop_cmd="bridge_stop"
26#
27
28# PROVIDE: bridge
29# REQUIRE: netif
30# KEYWORD: nojail
31
32. /etc/rc.subr
33. /etc/network.subr
34
35name="bridge"
36start_cmd="bridge_start"
37stop_cmd="bridge_stop"
38_cmd=""
38cmd=""
39
40glob_int () {
41 case "$1" in
42 $2 ) true ;;
43 * ) false ;;
44 esac
45}
46
47bridge_test () {
48 bridge=$1
49 iface=$2
50
51 eval interfaces=\$autobridge_${bridge}
52 if [ -n "${interfaces}" ]; then
53 for i in ${interfaces}; do
54 if glob_int $iface $i ; then
39
40glob_int () {
41 case "$1" in
42 $2 ) true ;;
43 * ) false ;;
44 esac
45}
46
47bridge_test () {
48 bridge=$1
49 iface=$2
50
51 eval interfaces=\$autobridge_${bridge}
52 if [ -n "${interfaces}" ]; then
53 for i in ${interfaces}; do
54 if glob_int $iface $i ; then
55 ifconfig $bridge $_cmd $iface > /dev/null 2>&1
55 ifconfig $bridge $cmd $iface > /dev/null 2>&1
56 return
57 fi
58 done
59 fi
60}
61
62autobridge()
63{
64 if [ -n "${autobridge_interfaces}" ]; then
56 return
57 fi
58 done
59 fi
60}
61
62autobridge()
63{
64 if [ -n "${autobridge_interfaces}" ]; then
65 if [ -z "$_iflist" ]; then
65 if [ -z "$iflist" ]; then
66 # We're operating as a general network start routine.
66 # We're operating as a general network start routine.
67 _iflist="`list_net_interfaces`"
67 iflist="`list_net_interfaces`"
68 fi
69
70 for br in ${autobridge_interfaces}; do
68 fi
69
70 for br in ${autobridge_interfaces}; do
71 for i in $_iflist; do
71 for i in $iflist; do
72 bridge_test $br $i
73 done
74 done
75 fi
76}
77
78bridge_start()
79{
72 bridge_test $br $i
73 done
74 done
75 fi
76}
77
78bridge_start()
79{
80 _cmd="addm"
80 cmd="addm"
81 autobridge
82}
83
84bridge_stop()
85{
81 autobridge
82}
83
84bridge_stop()
85{
86 _cmd="deletem"
86 cmd="deletem"
87 autobridge
88}
89
87 autobridge
88}
89
90_iflist=$2
90iflist=$2
91
92load_rc_config $name
93run_rc_command "$1"
91
92load_rc_config $name
93run_rc_command "$1"