netifd: add defaultreqopts config option
[openwrt/staging/noltari.git] / package / network / config / netifd / files / lib / netifd / proto / dhcp.sh
index 143e4451b6648ac2048b782989f7bb1c50f800d8..385cfc397474f94eee37df500dd7c35a5ecef6a3 100755 (executable)
@@ -14,6 +14,7 @@ proto_dhcp_init_config() {
        proto_config_add_boolean 'broadcast:bool'
        proto_config_add_boolean 'release:bool'
        proto_config_add_string 'reqopts:list(string)'
+       proto_config_add_boolean 'defaultreqopts:bool'
        proto_config_add_string iface6rd
        proto_config_add_string sendopts
        proto_config_add_boolean delegate
@@ -28,8 +29,8 @@ proto_dhcp_setup() {
        local config="$1"
        local iface="$2"
 
-       local ipaddr hostname clientid vendorid broadcast release reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute
-       json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute
+       local ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute
+       json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute
 
        local opt dhcpopts
        for opt in $reqopts; do
@@ -41,6 +42,7 @@ proto_dhcp_setup() {
        done
 
        [ -z "$hostname" ] && hostname="$(cat /proc/sys/kernel/hostname)"
+       [ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts=
        [ "$broadcast" = 1 ] && broadcast="-B" || broadcast=
        [ "$release" = 1 ] && release="-R" || release=
        [ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C"
@@ -62,7 +64,7 @@ proto_dhcp_setup() {
                ${ipaddr:+-r $ipaddr} \
                ${hostname:+-x "hostname:$hostname"} \
                ${vendorid:+-V "$vendorid"} \
-               $clientid $broadcast $release $dhcpopts
+               $clientid $defaultreqopts $broadcast $release $dhcpopts
 }
 
 proto_dhcp_renew() {