source: trunk/root/sbin/ifup @ 94

Last change on this file since 94 was 94, checked in by mbm, 12 years ago

split ifup/ifdown/wifi into standalone scripts

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
1#!/bin/ash
2. /etc/functions.sh
3  type=$1
4  debug "### ifup $type ###"
5
6  if=$(nvram_get ${type}_ifname)
7  if [ "${if%%[0-9]}" = "ppp" ]; then
8    if=$(nvram_get pppoe_ifname)
9  fi
10
11  if_valid $if || return
12
13  $DEBUG ifconfig $if down
14  if [ "${if%%[0-9]}" = "br" ]; then
15    stp=$(nvram_get ${type}_stp)
16    $DEBUG brctl delbr $if
17    $DEBUG brctl addbr $if
18    $DEBUG brctl setfd $if 0
19    $DEBUG brctl stp $if ${stp:-0}
20    for sif in $(nvram_get ${type}_ifnames); do {
21      if_valid $sif || continue
22      $DEBUG ifconfig $sif 0.0.0.0 up
23      $DEBUG brctl addif $if $sif
24    } done
25  fi
26
27  mac=$(nvram_get ${type}_hwaddr)
28  ${mac:+$DEBUG ifconfig $if hw ether $mac}
29
30  if_proto=$(nvram_get ${type}_proto)
31  case "$if_proto" in
32    static)
33      ip=$(nvram_get ${type}_ipaddr)
34      netmask=$(nvram_get ${type}_netmask)
35      gateway=$(nvram_get ${type}_gateway)
36
37      $DEBUG ifconfig $if $if_ip ${netmask:+netmask $netmask} broadcast + up
38      ${gateway:+$DEBUG route add default gw $gateway}
39
40      [ -f /etc/resolv.conf ] && return
41
42      debug "# --- creating /etc/resolv.conf ---"
43      for dns in $(nvram_get ${type}_dns); do {
44        echo "nameserver $dns" >> /etc/resolv.conf
45      } done
46    ;;
47    dhcp)
48      pidfile=/tmp/dhcp-${type}.pid
49      if [ -f $pidfile ]; then
50        $DEBUG kill $(cat $pidfile)
51      fi
52      ${DEBUG:-eval} "udhcpc -i $if -b -p $pidfile &"
53    ;;
54    pppoe)
55      username=$(nvram_get ppp_username)
56      password=$(nvram_get ppp_passwd)
57      redial=$(nvram_get ppp_redialperiod)
58      idletime=$(nvram_get ppp_idletime)
59      mtu=$(nvram_get wan_mtu)
60
61      $DEBUG ifconfig $if 0.0.0.0 up
62
63      $DEBUG /sbin/pppoecd $if -u $username -p $password \
64        -i 0 -I $redial -T $idletime -t $mtu -k
65    ;;
66    none)
67    ;;
68    *)
69      echo "### WARNING $if: $if_proto is not supported"
70    ;;
71  esac
Note: See TracBrowser for help on using the repository browser.