aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuang Rufan <kuangrufan@pset.suntec.net>2017-08-25 14:10:21 +0800
committerHans Dedecker <dedeckeh@gmail.com>2017-08-25 14:28:49 +0200
commit1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe (patch)
treef08f7764ff7d6ef0fc777f9997e4b977511b1b61
parentcdb494fdc2d3399e698893ff0cfd06d3c802364f (diff)
downloadupstream-1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe.tar.gz
upstream-1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe.tar.bz2
upstream-1e6e37c4f69d39d1cb2b988c7f6fd7e2227d2dbe.zip
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@pset.suntec.net> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r--package/network/services/dnsmasq/Makefile2
-rw-r--r--package/network/services/dnsmasq/files/dnsmasq.init7
2 files changed, 7 insertions, 2 deletions
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index cd74d04785..d7f14f98ad 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 4f539f9ba7..533945c2a4 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