-#!/bin/sh
-find_name()
-{
- for ifname in lan wan wifi ${ifnames}; do
- IFTYPE="${ifname}"
- eval "IFPROTO=\"\${${IFTYPE}_proto}\""
- eval "IFACE=\"\${${IFTYPE}_ifname}\""
- case "$IFPROTO" in
- ""|none);;
- static|dhcp)
- [ "${IFACE}" = "$INTERFACE" ] && return 0
- [ "${IFACE%%[0-9]*}" = "br" ] && {
- eval "ifs=\"\${${IFTYPE}_ifnames}\""
- for part in $ifs; do
- [ "$part" = "$INTERFACE" ] && return 0
- done
- }
- ;;
- pppoa)
- [ "$INTERFACE" = "atm0" \
- -a -x /sbin/ifup.${IFPROTO} ] && return 0
- ;;
- *)
- eval "device=\"\${${IFTYPE}_device}\""
- [ "$device" = "$INTERFACE" \
- -a -x /sbin/ifup.${IFPROTO} ] && return 0
- ;;
- esac
- done
- IFACE=""
- IFTYPE=""
- IFPROTO=""
- return 255
-}
-
-do_ifup() {
- if="$3"
- eval "if_proto=\"\${${2}_proto}\""
-
- pidfile=/var/run/${if}.pid
- [ -f $pidfile ] && $DEBUG kill $(cat $pidfile)
-
- case "$1" in
- static)
- eval "ip=\"\${${2}_ipaddr}\""
- eval "ip6=\"\${${2}_ip6addr}\""
- eval "netmask=\"\${${2}_netmask}\""
- eval "gateway=\"\${${2}_gateway}\""
- eval "dns=\"\${${2}_dns}\""
-
- $DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
- [ -n "$ip6" ] && $DEBUG ifconfig $if add $ip6
-
- ${gateway:+$DEBUG route add default gw $gateway}
-
- [ -f /tmp/resolv.conf ] || {
- debug "# --- creating /tmp/resolv.conf ---"
- for ns in $dns; do
- echo "nameserver $ns" >> /tmp/resolv.conf
- done
- }
-
- env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" &
- ;;
- dhcp)
- eval "ip=\"\${${2}_ipaddr}\""
- eval "netmask=\"\${${2}_netmask}\""
- eval "hostname=\"\${${2}_hostname}\""
-
- $DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
-
- args="-i $if ${ip:+-r $ip} -b -p $pidfile"
- hostname="${hostname%%.*}"
- args="$args${hostname:+ -H $hostname}"
- [ "$if_proto" = "pptp" ] && args="$args -n -q" || args="$args -R &"
- ${DEBUG:-eval} "udhcpc $args"
- # hotplug events are handled by /usr/share/udhcpc/default.script
- ;;
- *)
- if [ -x "/sbin/ifup.$1" ]; then
- ( $DEBUG . /sbin/ifup.$1 ${2} $3 )
- fi
- ;;
- esac
-}