[source] dnsmasq: add support for multiple tags for each host.

LEDE Commits lede-commits at lists.infradead.org
Fri Aug 25 05:29:32 PDT 2017


dedeckeh pushed a commit to source.git, branch master:
https://git.lede-project.org/1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe

commit 1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe
Author: Kuang Rufan <kuangrufan at pset.suntec.net>
AuthorDate: Fri Aug 25 14:10:21 2017 +0800

    dnsmasq: add support for multiple tags for each host.
    
    Currently, dnsmasq support assigning multiple tags to a host record
    (--dhcp-host), but we only support only 1 tag for a host. The commit
    makes the following config to be valid:
    
      config host
          option name 'computer'
          option mac '00:11:22:33:44:55'
          option ip '192.168.1.100'
          list tag 'vendor_class'
          list tag 'vendor_id'
    
      config tag 'vendor_class'
          list dhcp_option 'option:vendor-class,00:...<omitted>'
    
      config tag 'vendor_id'
          option force '1'
          list dhcp_option 'option:vendor-id-encap,00:...<omitted>'
    
    Signed-off-by: Kuang Rufan <kuangrufan at pset.suntec.net>
    Signed-off-by: Hans Dedecker <dedeckeh at gmail.com>
---
 package/network/services/dnsmasq/Makefile           | 2 +-
 package/network/services/dnsmasq/files/dnsmasq.init | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index cd74d04..d7f14f9 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
 PKG_VERSION:=2.77
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/
diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 4f539f9..533945c 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -322,12 +322,17 @@ dhcp_host_add() {
 			hex_to_hostid hostid "$hostid"
 	fi
 
+	tags=""
+	if [ -n "$tag" ]; then
+		for t in $tag; do append tags "$t" ",set:"; done
+	fi
+
 	config_get_bool broadcast "$cfg" broadcast 0
 	config_get leasetime "$cfg" leasetime
 
 	[ "$broadcast" = "0" ] && broadcast= || broadcast=",set:needs-broadcast"
 
-	hosttag="${networkid:+,set:${networkid}}${tag:+,set:${tag}}$broadcast"
+	hosttag="${networkid:+,set:${networkid}}${tags:+,set:${tags}}$broadcast"
 	nametime="${name:+,$name}${leasetime:+,$leasetime}"
 
 	if [ $DNSMASQ_DHCP_VER -eq 6 ]; then



More information about the lede-commits mailing list