diff options
author | Felix Fietkau <nbd@openwrt.org> | 2005-11-19 03:17:20 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2005-11-19 03:17:20 +0000 |
commit | 733dc9776268432e5188cc496da92137c820f016 (patch) | |
tree | a919b3d5402d4e22697ec2a49d1b005424f25104 /openwrt/package/base-files/default/etc/functions.sh | |
parent | 9a8a69c0b82a6c128831e75200489ed397d44f44 (diff) | |
download | mtk-20170518-733dc9776268432e5188cc496da92137c820f016.zip mtk-20170518-733dc9776268432e5188cc496da92137c820f016.tar.gz mtk-20170518-733dc9776268432e5188cc496da92137c820f016.tar.bz2 |
hotplug-based network script rewrite
SVN-Revision: 2531
Diffstat (limited to 'openwrt/package/base-files/default/etc/functions.sh')
-rwxr-xr-x | openwrt/package/base-files/default/etc/functions.sh | 69 |
1 files changed, 3 insertions, 66 deletions
diff --git a/openwrt/package/base-files/default/etc/functions.sh b/openwrt/package/base-files/default/etc/functions.sh index 9cfc802..e712647 100755 --- a/openwrt/package/base-files/default/etc/functions.sh +++ b/openwrt/package/base-files/default/etc/functions.sh @@ -1,4 +1,4 @@ -#!/bin/ash +#!/bin/sh . /etc/nvram.sh alias debug=${DEBUG:-:} @@ -7,74 +7,11 @@ alias debug=${DEBUG:-:} if_valid () ( ifconfig "$1" >&- 2>&- || [ "${1%%[0-9]}" = "br" ] || - { - [ "${1%%[0-9]}" = "vlan" ] && ( - i=${1#vlan} - hwname=$(nvram get vlan${i}hwname) - hwaddr=$(nvram get ${hwname}macaddr) - [ -z "$hwaddr" ] && return 1 - - vif=$(ifconfig -a | awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE=1) - debug "# vlan$i => $vif" - - $DEBUG ifconfig $vif up - $DEBUG vconfig add $vif $i 2>&- - ) - } || { debug "# missing interface '$1' ignored"; false; } ) -do_ifup() { - if_proto=$(nvram get ${2}_proto) - if=$(nvram get ${2}_ifname) - [ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname) - - pidfile=/var/run/${if}.pid - [ -f $pidfile ] && $DEBUG kill $(cat $pidfile) - - case "$1" in - static) - ip=$(nvram get ${2}_ipaddr) - netmask=$(nvram get ${2}_netmask) - gateway=$(nvram get ${2}_gateway) - - $DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up - ${gateway:+$DEBUG route add default gw $gateway} - - [ -f /etc/resolv.conf ] || { - debug "# --- creating /etc/resolv.conf ---" - for dns in $(nvram get ${2}_dns); do - echo "nameserver $dns" >> /etc/resolv.conf - done - } - - env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" & - ;; - dhcp) - DHCP_IP=$(nvram get ${2}_ipaddr) - DHCP_NETMASK=$(nvram get ${2}_netmask) - $DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up - - DHCP_ARGS="-i $if ${DHCP_IP:+-r $DHCP_IP} -b -p $pidfile" - DHCP_HOSTNAME=$(nvram get ${2}_hostname) - DHCP_HOSTNAME=${DHCP_HOSTNAME%%.*} - [ -z $DHCP_HOSTNAME ] || DHCP_ARGS="$DHCP_ARGS -H $DHCP_HOSTNAME" - [ "$if_proto" = "pptp" ] && DHCP_ARGS="$DHCP_ARGS -n -q" || DHCP_ARGS="$DHCP_ARGS -R &" - oldpid=$(cat $pidfile) - ${DEBUG:-eval} "udhcpc $DHCP_ARGS" - pidof udhcpc | grep "$oldpid" >&- 2>&- && { - sleep 1 - kill -9 $oldpid - } - # hotplug events are handled by /usr/share/udhcpc/default.script - ;; - none|"") - ;; - *) - [ -x "/sbin/ifup.$1" ] && { $DEBUG /sbin/ifup.$1 ${2}; exit; } - echo "### ifup ${2}: ignored ${2}_proto=\"$1\" (not supported)" - ;; - esac +hotplug_dev() { + env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net } bitcount () { |