netifd: fix fw3 warnings in dhcp script
[openwrt/openwrt.git] / package / network / config / netifd / files / lib / netifd / dhcp.script
index 54d3aa10720ce45d488da4639be9ef215784bea1..e841f9185509995835d9a6294648813add11630f 100755 (executable)
@@ -19,7 +19,12 @@ setup_interface () {
        # TODO: apply $broadcast
 
        for i in $router; do
+               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)
@@ -34,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"
@@ -49,8 +60,8 @@ setup_interface () {
                ip6rd="${ip6rd#* }"
                local ip6rdbr="${ip6rd%% *}"
 
-               [ -n "$ZONE" ] || ZONE=$(fw3 -q 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"
@@ -69,12 +80,6 @@ setup_interface () {
 
                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