#!/bin/sh . /etc/sysconfig/rc . ${rc_functions} . /var/ipfire/ethernet/settings a_file=/etc/default/bridge # case "${1}" in start) while read line; do card=$(echo $line | cut -f1 -d=) bool=$(echo $line | cut -f2 -d=) if [ $bool = "yes" ];then adress=${card^^}_ADDRESS mask=${card^^}_NETMASK boot_mesg "Create bridge for ${card}..." ifconfig ${card,,}0 0.0.0.0 ip link set ${card,,}0 down ip link set ${card,,}0 name ${card,,}1 brctl addbr ${card,,}0 ifconfig ${card,,}0 ${!adress} netmask ${!mask} brctl addif ${card,,}0 ${card,,}1 ip link set ${card,,}1 up evaluate_retval fi done < ${a_file} ;; stop) while read line; do card=$(echo $line | cut -f1 -d=) bool=$(echo $line | cut -f2 -d=) if [ ${bool,,} = "yes" ];then adress=${card^^}_ADDRESS mask=${card^^}_NETMASK boot_mesg "Remove bridge for ${card,,}..." brctl delif ${card,,}0 ${card,,}1 ifconfig ${card,,}0 0.0.0.0 ip link set ${card,,}1 down ip link set ${card,,}0 down brctl delbr ${card,,}0 ip link set ${card,,}1 name ${card,,}0 ip link set ${card,,}0 up ifconfig ${card,,}0 ${!adress} netmask ${!mask} evaluate_retval fi done < ${a_file} ;; *) echo "Usage: ${0} {start|stop}" exit 1 ;; esac # End $rc_base/init.d/bridge