2 # Copyright (C) 2006 OpenWrt.org
3 # Copyright (C) 2006 Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de>
11 alias debug
=${DEBUG:-:}
15 ifconfig
"$1" >&- 2>&- ||
16 [ "${1%%[0-9]}" = "br" ] ||
18 [ "${1%%[0-9]*}" = "vlan" ] && (
20 hwname
=$
(nvram get vlan
${i}hwname
)
21 hwaddr
=$
(nvram get
${hwname}macaddr
)
22 [ -z "$hwaddr" ] && return 1
24 vif
=$
(ifconfig
-a |
awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE
=1)
25 debug
"# vlan$i => $vif"
27 $DEBUG ifconfig
$vif up
28 $DEBUG vconfig add
$vif $i 2>&-
31 { debug
"# missing interface '$1' ignored"; false
; }
35 if_proto
=$
(nvram get
${2}_proto
)
36 if=$
(nvram get
${2}_ifname
)
37 [ "${if%%[0-9]}" = "ppp" ] && if=$
(nvram get
${2}_device
)
39 pidfile
=/var
/run
/${if}.pid
40 [ -f $pidfile ] && $DEBUG kill $
(cat $pidfile)
44 ip
=$
(nvram get
${2}_ipaddr
)
45 netmask
=$
(nvram get
${2}_netmask
)
46 gateway
=$
(nvram get
${2}_gateway
)
47 mtu
=$
(nvram get
${2}_mtu
)
48 static_route
=$
(nvram get
${2}_static_route
)
50 $DEBUG ifconfig
$if $ip ${netmask:+netmask $netmask} ${mtu:+mtu $(($mtu))} broadcast
+ up
51 ${gateway:+$DEBUG route add default gw $gateway}
53 [ -n "$static_route" ] && {
54 for route
in $static_route; do {
55 eval "set $(echo $route | sed 's/:/ /g')"
56 if [ "$2" = "255.255.255.255" ]; then
59 $DEBUG route add
${opt:-"-net"} $1 netmask
$2 gw
$3 metric
$4
63 [ -f /tmp
/resolv.conf.auto
] ||
{
64 debug
"# --- creating /tmp/resolv.conf.auto ---"
65 for dns
in $
(nvram get
${2}_dns
); do
66 echo "nameserver $dns" >> /tmp
/resolv.conf.auto
70 env
-i ACTION
="ifup" INTERFACE
="${2}" PROTO
=static
/sbin
/hotplug
"iface" &
73 DHCP_IP
=$
(nvram get
${2}_ipaddr
)
74 DHCP_NETMASK
=$
(nvram get
${2}_netmask
)
75 mtu
=$
(nvram get
${2}_mtu
)
76 $DEBUG ifconfig
$if $DHCP_IP ${DHCP_NETMASK:+netmask $DHCP_NETMASK} ${mtu:+mtu $(($mtu))} broadcast
+ up
78 DHCP_ARGS
="-i $if ${DHCP_IP:+-r $DHCP_IP} -b -p $pidfile"
79 DHCP_HOSTNAME
=$
(nvram get
${2}_hostname
)
80 DHCP_HOSTNAME
=${DHCP_HOSTNAME%%.*}
81 [ -z $DHCP_HOSTNAME ] || DHCP_ARGS
="$DHCP_ARGS -H $DHCP_HOSTNAME"
82 [ "$if_proto" = "pptp" ] && DHCP_ARGS
="$DHCP_ARGS -n -q" || DHCP_ARGS
="$DHCP_ARGS -R &"
83 [ -r $pidfile ] && oldpid
=$
(cat $pidfile 2>&-)
84 ${DEBUG:-eval} "udhcpc $DHCP_ARGS"
85 [ -n "$oldpid" ] && pidof udhcpc |
grep "$oldpid" >&- 2>&- && {
89 # hotplug events are handled by /usr/share/udhcpc/default.script
94 [ -x "/sbin/ifup.$1" ] && { $DEBUG /sbin
/ifup.
$1 ${2}; exit; }
95 echo "### ifup ${2}: ignored ${2}_proto=\"$1\" (not supported)"
104 eval "export ${var}=\"\${${var}:+\${${var}}${value:+$sep}}\$value\""
121 name
="${name:-cfg${_C}}"
122 config_cb
"$cfgtype" "$name"
123 export CONFIG_SECTION
="$name"
124 export CONFIG_
${CONFIG_SECTION}_TYPE
="$cfgtype"
128 local varname
="$1"; shift
129 export CONFIG_
${CONFIG_SECTION}_
${varname}="$*"
130 option_cb
"$varname" "$*"
134 [ -z "$CONFIG_SECTION" ] && return
135 for oldsetting
in `set | grep ^CONFIG_${CONFIG_SECTION}_ | \
136 sed -e 's/\(.*\)=.*$/\1/'` ; do
146 [ \
! -e "$1" -a -e "/etc/config/$1" ] && {
150 CONFIG_FILENAME
="$DIR$1"
153 ${CD:+cd -} >/dev
/null
154 ${CONFIG_SECTION:+config_cb}
159 "") eval "echo \${CONFIG_${1}_${2}}";;
160 *) eval "$1=\"\${CONFIG_${2}_${3}}\"";;
165 export CONFIG_
${1}_${2}="${3}"
169 for file in $(ls /lib/$1/*.sh 2>/dev/null); do
177 [ -f "/proc
/diag
/led
/$1" ] && echo "$state" > "/proc
/diag
/led
/$1"