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" |