#!/bin/sh

BRIDGE_ethB="1";
BRIDGE_ethC="1";
BRIDGE_ethD="1";
BRIDGE_ethE="1";

if [ -e /etc/default/bridge ];then
  source /etc/default/bridge
fi;

NAME_eth0="ethA";
NAME_eth1="ethB";
NAME_eth2="ethC";
NAME_usb0="ethD";
NAME_usb1="ethE";


INAME="NAME_${1}"
NAME=${!INAME}

if [ ! "${NAME}" ] ||  (( $(cat /sys/class/net/${1}/flags) & 1 ));then
  exit 1;
fi;

if [ "${1}" == "eth0" ] && [ ! -d /sys/class/net/${1}/brif ];then
  /sbin/ip link set dev ${1} name ${NAME}
  /sbin/ip link add name ${1} type bridge
  /sbin/ip link set dev ${1} address $(cat /sys/class/net/${NAME}/address)
  /sbin/ip link set dev ${NAME} master ${1}
  /sbin/ip link set dev ${1} up
  /sbin/ip link set dev ${NAME} up
 elif [ ! -d /sys/class/net/${NAME} ];then
  BIFACE="BRIDGE_${NAME}"
  if [ "${!BIFACE}" == "1" ] && [ -d /sys/class/net/eth0/brif ];then
    /sbin/ip link set dev ${1} name ${NAME}
    /sbin/ip link set dev ${NAME} master eth0
    /sbin/ip link set dev ${NAME} up
   elif [ "${!BIFACE}" == "1" ] && [ ! -d /sys/class/net/eth0/brif ];then
    /sbin/ip link set dev ${1} up
    /sbin/udhcpc -b -q -t 6 -p /var/run/udhcpc.${1}.pid -i ${1}
   elif [ "${!BIFACE}" == "2" ];then
    /sbin/ip link set dev ${1} up
    /sbin/udhcpc -b -q -t 6 -p /var/run/udhcpc.${1}.pid -i ${1}
   elif [ "${!BIFACE}" == "0" ];then
    /sbin/ip link set dev ${1} up
  fi
fi
