mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 03:58:35 +02:00
netifd: add a new udhcpc default script for command line use (no uci support)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30741 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
61489954f3
commit
79d9ad50db
57
package/netifd/files/usr/share/udhcpc/default.script
Executable file
57
package/netifd/files/usr/share/udhcpc/default.script
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
|
||||||
|
|
||||||
|
set_classless_routes() {
|
||||||
|
local max=128
|
||||||
|
local type
|
||||||
|
while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do
|
||||||
|
[ ${1##*/} -eq 32 ] && type=host || type=net
|
||||||
|
echo "udhcpc: adding route for $type $1 via $2"
|
||||||
|
route add -$type "$1" gw "$2" dev "$interface"
|
||||||
|
max=$(($max-1))
|
||||||
|
shift 2
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_interface() {
|
||||||
|
echo "udhcpc: ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}"
|
||||||
|
ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}
|
||||||
|
|
||||||
|
[ -n "$router" ] && [ "$router" != "0.0.0.0" ] && [ "$router" != "255.255.255.255" ] && {
|
||||||
|
echo "udhcpc: setting default routers: $router"
|
||||||
|
|
||||||
|
local valid_gw=""
|
||||||
|
for i in $router ; do
|
||||||
|
route add default gw $i dev $interface
|
||||||
|
valid_gw="${valid_gw:+$valid_gw|}$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
eval $(route -n | awk '
|
||||||
|
/^0.0.0.0\W{9}('$valid_gw')\W/ {next}
|
||||||
|
/^0.0.0.0/ {print "route del -net "$1" gw "$2";"}
|
||||||
|
')
|
||||||
|
}
|
||||||
|
|
||||||
|
# CIDR STATIC ROUTES (rfc3442)
|
||||||
|
[ -n "$staticroutes" ] && set_classless_routes $staticroutes
|
||||||
|
[ -n "$msstaticroutes" ] && set_classless_routes $msstaticroutes
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
applied=
|
||||||
|
case "$1" in
|
||||||
|
deconfig)
|
||||||
|
ifconfig "$interface" 0.0.0.0
|
||||||
|
;;
|
||||||
|
renew)
|
||||||
|
setup_interface update
|
||||||
|
;;
|
||||||
|
bound)
|
||||||
|
setup_interface ifup
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# user rules
|
||||||
|
[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user