|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
#!/bin/ash |
|
|
|
|
[ $# = 0 ] && { echo " $0 <group>"; exit; } |
|
|
|
|
|
|
|
|
|
. /etc/functions.sh |
|
|
|
|
. /etc/network.overrides |
|
|
|
|
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network |
|
|
|
@ -8,59 +9,28 @@ type=$1 |
|
|
|
|
debug "### ifup $type ###" |
|
|
|
|
|
|
|
|
|
if_proto=$(nvram get ${type}_proto) |
|
|
|
|
[ "${if_proto}" = "pppoa" ] || { |
|
|
|
|
if=$(nvram get ${type}_ifname) |
|
|
|
|
[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname) |
|
|
|
|
|
|
|
|
|
if_valid $if || exit |
|
|
|
|
mac=$(nvram get ${type}_hwaddr) |
|
|
|
|
$DEBUG ifconfig $if down 2>&- |
|
|
|
|
|
|
|
|
|
pidfile=/var/run/${if}.pid |
|
|
|
|
[ -f $pidfile ] && $DEBUG kill $(cat $pidfile) |
|
|
|
|
|
|
|
|
|
if [ "${if%%[0-9]}" = "br" ]; then |
|
|
|
|
stp=$(nvram get ${type}_stp) |
|
|
|
|
$DEBUG brctl delbr $if 2>&- |
|
|
|
|
$DEBUG brctl addbr $if |
|
|
|
|
$DEBUG brctl setfd $if 0 |
|
|
|
|
$DEBUG brctl stp $if ${stp:-0} |
|
|
|
|
|
|
|
|
|
for sif in $(nvram get ${type}_ifnames); do |
|
|
|
|
if_valid $sif || continue |
|
|
|
|
${mac:+$DEBUG ifconfig $sif down hw ether $mac} |
|
|
|
|
$DEBUG ifconfig $sif 0.0.0.0 up |
|
|
|
|
$DEBUG brctl addif $if $sif |
|
|
|
|
done |
|
|
|
|
else |
|
|
|
|
${mac:+$DEBUG ifconfig $if down hw ether $mac} |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case "$if_proto" in |
|
|
|
|
static) |
|
|
|
|
ip=$(nvram get ${type}_ipaddr) |
|
|
|
|
netmask=$(nvram get ${type}_netmask) |
|
|
|
|
gateway=$(nvram get ${type}_gateway) |
|
|
|
|
|
|
|
|
|
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up |
|
|
|
|
${gateway:+$DEBUG route add default gw $gateway} |
|
|
|
|
|
|
|
|
|
[ -f /etc/resolv.conf ] && return |
|
|
|
|
|
|
|
|
|
debug "# --- creating /etc/resolv.conf ---" |
|
|
|
|
for dns in $(nvram get ${type}_dns); do |
|
|
|
|
echo "nameserver $dns" >> /etc/resolv.conf |
|
|
|
|
done |
|
|
|
|
;; |
|
|
|
|
dhcp) |
|
|
|
|
ip=$(nvram get ${type}_ipaddr) |
|
|
|
|
${DEBUG:-eval} "udhcpc -R -i $if ${ip:+-r $ip} -b -p $pidfile &" |
|
|
|
|
;; |
|
|
|
|
none|"") |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
[ -x "/sbin/ifup.${if_proto}" ] && { $DEBUG /sbin/ifup.${if_proto} $*; exit; } |
|
|
|
|
echo "### ifup $type: ignored ${type}_proto=\"$if_proto\" (not supported)" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
if=$(nvram get ${type}_ifname) |
|
|
|
|
[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname) |
|
|
|
|
|
|
|
|
|
if_valid $if || [ "$if_proto" = "pptp" ] || exit |
|
|
|
|
mac=$(nvram get ${type}_hwaddr) |
|
|
|
|
$DEBUG ifconfig $if down 2>&- |
|
|
|
|
|
|
|
|
|
if [ "${if%%[0-9]}" = "br" ]; then |
|
|
|
|
stp=$(nvram get ${type}_stp) |
|
|
|
|
$DEBUG brctl delbr $if 2>&- |
|
|
|
|
$DEBUG brctl addbr $if |
|
|
|
|
$DEBUG brctl setfd $if 0 |
|
|
|
|
$DEBUG brctl stp $if ${stp:-0} |
|
|
|
|
|
|
|
|
|
for sif in $(nvram get ${type}_ifnames); do |
|
|
|
|
if_valid $sif || continue |
|
|
|
|
${mac:+$DEBUG ifconfig $sif down hw ether $mac} |
|
|
|
|
$DEBUG ifconfig $sif 0.0.0.0 up |
|
|
|
|
$DEBUG brctl addif $if $sif |
|
|
|
|
done |
|
|
|
|
else |
|
|
|
|
${mac:+$DEBUG ifconfig $if down hw ether $mac} |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
do_ifup $if_proto $type |
|
|
|
|