OpenWrt – Blame information for rev 4
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
4 | office | 1 | #!/bin/sh |
2 | [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 |
||
3 | |||
4 | set_classless_routes() { |
||
5 | local max=128 |
||
6 | local type |
||
7 | while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do |
||
8 | [ ${1##*/} -eq 32 ] && type=host || type=net |
||
9 | echo "udhcpc: adding route for $type $1 via $2" |
||
10 | route add -$type "$1" gw "$2" dev "$interface" |
||
11 | max=$(($max-1)) |
||
12 | shift 2 |
||
13 | done |
||
14 | } |
||
15 | |||
16 | setup_interface() { |
||
17 | echo "udhcpc: ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}" |
||
18 | ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+} |
||
19 | |||
20 | [ -n "$router" ] && [ "$router" != "0.0.0.0" ] && [ "$router" != "255.255.255.255" ] && { |
||
21 | echo "udhcpc: setting default routers: $router" |
||
22 | |||
23 | local valid_gw="" |
||
24 | for i in $router ; do |
||
25 | route add default gw $i dev $interface |
||
26 | valid_gw="${valid_gw:+$valid_gw|}$i" |
||
27 | done |
||
28 | |||
29 | eval $(route -n | awk ' |
||
30 | /^0.0.0.0\W{9}('$valid_gw')\W/ {next} |
||
31 | /^0.0.0.0/ {print "route del -net "$1" gw "$2";"} |
||
32 | ') |
||
33 | } |
||
34 | |||
35 | # CIDR STATIC ROUTES (rfc3442) |
||
36 | [ -n "$staticroutes" ] && set_classless_routes $staticroutes |
||
37 | [ -n "$msstaticroutes" ] && set_classless_routes $msstaticroutes |
||
38 | } |
||
39 | |||
40 | |||
41 | applied= |
||
42 | case "$1" in |
||
43 | deconfig) |
||
44 | ifconfig "$interface" 0.0.0.0 |
||
45 | ;; |
||
46 | renew) |
||
47 | setup_interface update |
||
48 | ;; |
||
49 | bound) |
||
50 | setup_interface ifup |
||
51 | ;; |
||
52 | esac |
||
53 | |||
54 | # user rules |
||
55 | [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user |
||
56 | |||
57 | exit 0 |