set_classless_routes() {
local max=128
- local type
while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do
- proto_add_ipv4_route "${1%%/*}" "${1##*/}" "$2"
+ proto_add_ipv4_route "${1%%/*}" "${1##*/}" "$2" "$ip"
max=$(($max-1))
shift 2
done
# TODO: apply $broadcast
for i in $router; do
- proto_add_ipv4_route 0.0.0.0 0 "$i"
+ proto_add_ipv4_route "$i" 32 "" "$ip"
+ proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip"
+
+ for r in $CUSTOMROUTES; do
+ proto_add_ipv4_route "${r%%/*}" "${r##*/}" "$i" "$ip"
+ done
done
# CIDR STATIC ROUTES (rfc3442)
for domain in $domain; do
proto_add_dns_search "$domain"
done
+
+ proto_add_data
+ [ -n "$ZONE" ] && json_add_string zone "$ZONE"
+ [ -n "$ntpsrv" ] && json_add_string ntpserver "$ntpsrv"
+ [ -n "$timesvr" ] && json_add_string timeserver "$timesvr"
+ [ -n "$hostname" ] && json_add_string hostname "$hostname"
+ [ -n "$message" ] && json_add_string message "$message"
+ [ -n "$timezone" ] && json_add_int timezone "$timezone"
+ [ -n "$lease" ] && json_add_int leasetime "$lease"
+ proto_close_data
+
proto_send_update "$INTERFACE"
- # TODO
- # [ -n "$ntpsrv" ] && change_state network "$ifc" lease_ntpsrv "$ntpsrv"
- # [ -n "$timesvr" ] && change_state network "$ifc" lease_timesrv "$timesvr"
- # [ -n "$hostname" ] && change_state network "$ifc" lease_hostname "$hostname"
- # [ -n "$timezone" ] && change_state network "$ifc" lease_timezone "$timezone"
+
+ if [ "$IFACE6RD" != 0 -a -n "$ip6rd" ]; then
+ local v4mask="${ip6rd%% *}"
+ ip6rd="${ip6rd#* }"
+ local ip6rdprefixlen="${ip6rd%% *}"
+ ip6rd="${ip6rd#* }"
+ local ip6rdprefix="${ip6rd%% *}"
+ ip6rd="${ip6rd#* }"
+ local ip6rdbr="${ip6rd%% *}"
+
+ [ -n "$ZONE" ] || ZONE=$(fw3 -q network $INTERFACE)
+ [ -z "$IFACE6RD" -o "$IFACE6RD" = 1 ] && IFACE6RD=${INTERFACE}_6
+
+ json_init
+ json_add_string name "$IFACE6RD"
+ json_add_string ifname "@$INTERFACE"
+ json_add_string proto "6rd"
+ json_add_string peeraddr "$ip6rdbr"
+ json_add_int ip4prefixlen "$v4mask"
+ json_add_string ip6prefix "$ip6rdprefix"
+ json_add_int ip6prefixlen "$ip6rdprefixlen"
+ json_add_string tunlink "$INTERFACE"
+ [ -n "$IFACE6RD_DELEGATE" ] && json_add_boolean delegate "$IFACE6RD_DELEGATE"
+ [ -n "$ZONE6RD" ] || ZONE6RD=$ZONE
+ [ -n "$ZONE6RD" ] && json_add_string zone "$ZONE6RD"
+ [ -n "$MTU6RD" ] && json_add_string mtu "$MTU6RD"
+ json_close_object
+
+ ubus call network add_dynamic "$(json_dump)"
+ fi
}
deconfig_interface() {
;;
esac
+# user rules
+[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
+
exit 0