X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fnetwork%2Fconfig%2Fnetifd%2Ffiles%2Flib%2Fnetifd%2Fdhcp.script;h=e841f9185509995835d9a6294648813add11630f;hp=db3fc011a1ebd66d5d2e4e29b38148b08d88297f;hb=7fb03d96105ae3d42c422383bdb36eff76d403e0;hpb=9231df566517da7cc679b5a09832e9eb84d31ef3 diff --git a/package/network/config/netifd/files/lib/netifd/dhcp.script b/package/network/config/netifd/files/lib/netifd/dhcp.script index db3fc011a1..e841f91855 100755 --- a/package/network/config/netifd/files/lib/netifd/dhcp.script +++ b/package/network/config/netifd/files/lib/netifd/dhcp.script @@ -6,9 +6,8 @@ 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 @@ -20,7 +19,12 @@ setup_interface () { # 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) @@ -35,7 +39,13 @@ setup_interface () { done proto_add_data - [ -n "$ZONE" ] && json_add_string zone "$ZONE" + [ -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" @@ -50,8 +60,8 @@ setup_interface () { ip6rd="${ip6rd#* }" local ip6rdbr="${ip6rd%% *}" - [ -n "$ZONE" ] || ZONE=$(fw3 network $INTERFACE) - [ -z "$IFACE6RD" -o "$IFACE6RD" = 1 ] && IFACE6RD=${INTERFACE}_6rd + [ -n "$ZONE" ] || ZONE=$(fw3 -q network $INTERFACE 2>/dev/null) + [ -z "$IFACE6RD" -o "$IFACE6RD" = 1 ] && IFACE6RD=${INTERFACE}_6 json_init json_add_string name "$IFACE6RD" @@ -65,16 +75,11 @@ setup_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 - - # 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" } deconfig_interface() { @@ -92,6 +97,6 @@ case "$1" in esac # user rules -[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user +[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user "$@" exit 0