[openwrt/openwrt] netifd: add defaultreqopts config option

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 1 12:46:23 PST 2018


dedeckeh pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/60e07ffec5d797ffae4417a8b8fc1854158e8faf

commit 60e07ffec5d797ffae4417a8b8fc1854158e8faf
Author: Hans Dedecker <dedeckeh at gmail.com>
AuthorDate: Thu Feb 1 15:12:58 2018 +0100

    netifd: add defaultreqopts config option
    
    By default udhcpc asks for a default list of options; the config option
    defaultreqopts allows to tweak this behavior.
    When set to 0 udhcpc will not ask for any options except for the options
    specified in the reqopts config option.
    
    Signed-off-by: Hans Dedecker <dedeckeh at gmail.com>
---
 package/network/config/netifd/Makefile                       | 2 +-
 package/network/config/netifd/files/lib/netifd/proto/dhcp.sh | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index bb9ba2f..efa7480 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netifd
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
index 143e445..385cfc3 100755
--- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
+++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
@@ -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() {



More information about the lede-commits mailing list