]> git.ipfire.org Git - people/stevee/network.git/commitdiff
network: Put bridge functions into extra file.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 10 Jul 2010 17:21:23 +0000 (19:21 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 10 Jul 2010 17:21:23 +0000 (19:21 +0200)
functions.bridge [new file with mode: 0644]
functions.device

diff --git a/functions.bridge b/functions.bridge
new file mode 100644 (file)
index 0000000..4a32789
--- /dev/null
@@ -0,0 +1,113 @@
+#!/bin/bash
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2010  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+function bridge_attach_device() {
+       local bridge=${1}
+       local device=${2}
+
+       assert isset bridge
+       assert isset device
+
+       assert device_exists ${bridge}
+       assert device_exists ${device}
+
+       # If device is already attached, exit silently
+       if listmatch ${device} $(bridge_get_members ${bridge}); then
+               return ${EXIT_OK}
+       fi
+
+       log INFO "Attaching device '${device}' to bridge '${bridge}'."
+
+       brctl addif ${bridge} ${device}
+}
+
+function bridge_detach_device() {
+       local bridge=${1}
+       local device=${2}
+
+       assert isset bridge
+       assert isset device
+       
+       if ! device_exists ${bridge}; then
+               error "Bridge '${bridge}' does not exist."
+               return ${EXIT_ERROR}
+       fi
+
+       if ! device_exists ${device}; then
+               error "Device '${device}' does not exist."
+               return ${EXIT_ERROR}
+       fi
+
+       log INFO "Detaching device '${device}' from bridge '${bridge}'."
+
+       brctl delif ${bridge} ${device}
+}
+
+function bridge_get_members() {
+       local bridge=${1}
+
+       assert isset bridge
+
+       local member
+       for member in ${SYS_CLASS_NET}/${bridge}/brif/*; do
+               member=$(basename ${member})
+               if device_exists ${member}; then
+                       echo "${member}"
+               fi
+       done
+}
+
+function bridge_is_forwarding() {
+       local seconds=45
+       local zone=${1}
+
+       bridge_has_carrier ${zone} || return ${EXIT_ERROR}
+
+       local device
+       while [ ${seconds} -gt 0 ]; do
+               for device in ${SYS_CLASS_NET}/${zone}/brif/*; do
+                       [ -e "${device}/state" ] || continue
+                       if [ "$(<${device}/state)" = "3" ]; then
+                               return ${EXIT_OK}
+                       fi
+               done
+               sleep 1
+               seconds=$((${seconds} - 1))
+       done
+
+       return ${EXIT_ERROR}
+}
+
+function bridge_has_carrier() {
+       local zone=${1}
+
+       local has_carrier=${EXIT_ERROR}
+
+       local device
+       for device in ${SYS_CLASS_NET}/${zone}/brif/*; do
+               device=$(basename ${device})
+               device_exists ${device} || continue
+
+               device_has_carrier ${device} && has_carrier=${EXIT_OK}
+       done
+
+       return ${has_carrier}
+}
index 516edaa66b65dfe6695dd786e9f9190ee7d95679..9ed51ac2a95989ca77a9d61e41e6ef098f146c94 100644 (file)
@@ -650,99 +650,6 @@ function device_virtual_get_by_parent_and_vid() {
        return ${EXIT_ERROR}
 }
 
-function bridge_attach_device() {
-       local bridge=${1}
-       local device=${2}
-
-       assert isset bridge
-       assert isset device
-
-       assert device_exists ${bridge}
-       assert device_exists ${device}
-
-       # If device is already attached, exit silently
-       if listmatch ${device} $(bridge_get_members ${bridge}); then
-               return ${EXIT_OK}
-       fi
-
-       log INFO "Attaching device '${device}' to bridge '${bridge}'."
-
-       brctl addif ${bridge} ${device}
-}
-
-function bridge_detach_device() {
-       local bridge=${1}
-       local device=${2}
-
-       assert isset bridge
-       assert isset device
-       
-       if ! device_exists ${bridge}; then
-               error "Bridge '${bridge}' does not exist."
-               return ${EXIT_ERROR}
-       fi
-
-       if ! device_exists ${device}; then
-               error "Device '${device}' does not exist."
-               return ${EXIT_ERROR}
-       fi
-
-       log INFO "Detaching device '${device}' from bridge '${bridge}'."
-
-       brctl delif ${bridge} ${device}
-}
-
-function bridge_get_members() {
-       local bridge=${1}
-
-       assert isset bridge
-
-       local member
-       for member in ${SYS_CLASS_NET}/${bridge}/brif/*; do
-               member=$(basename ${member})
-               if device_exists ${member}; then
-                       echo "${member}"
-               fi
-       done
-}
-
-function bridge_is_forwarding() {
-       local seconds=45
-       local zone=${1}
-
-       bridge_has_carrier ${zone} || return ${EXIT_ERROR}
-
-       local device
-       while [ ${seconds} -gt 0 ]; do
-               for device in ${SYS_CLASS_NET}/${zone}/brif/*; do
-                       [ -e "${device}/state" ] || continue
-                       if [ "$(<${device}/state)" = "3" ]; then
-                               return ${EXIT_OK}
-                       fi
-               done
-               sleep 1
-               seconds=$((${seconds} - 1))
-       done
-
-       return ${EXIT_ERROR}
-}
-
-function bridge_has_carrier() {
-       local zone=${1}
-
-       local has_carrier=${EXIT_ERROR}
-
-       local device
-       for device in ${SYS_CLASS_NET}/${zone}/brif/*; do
-               device=$(basename ${device})
-               device_exists ${device} || continue
-
-               device_has_carrier ${device} && has_carrier=${EXIT_OK}
-       done
-
-       return ${has_carrier}
-}
-
 function device_has_ipv4() {
        local device=${1}
        local addr=${2}