From 680a5c5d3e4737d6d96fc1b34aba93d04d2390b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Tue, 20 Jun 2017 11:45:49 +0200 Subject: dnsmasq: add dhcp-range tags configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dnsmasq can match tags in its dhcp-range configuration, this commit adds the option to configure it in the dhcp section uci configuration: config dhcp 'lan' option interface 'lan' list tag 'blue' list tag '!red' option start '10' option limit '150' option leasetime '12h' generated dnsmasq configuration: dhcp-range=tag:blue,tag:!red,set:lan,192.168.1.10,192.168.1.159,255.255.255.0,12h Signed-off-by: Grégoire Delattre --- package/network/services/dnsmasq/Makefile | 2 +- package/network/services/dnsmasq/files/dnsmasq.init | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile index f9ab13aef0..35ac6b2891 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:=3 +PKG_RELEASE:=4 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 d5177ecb0c..065d1fd8c2 100644 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -440,6 +440,7 @@ dhcp_add() { local cfg="$1" local dhcp6range="::" local nettag + local tags config_get net "$cfg" interface [ -n "$net" ] || return 0 @@ -491,6 +492,12 @@ dhcp_add() { dhcp_this_host_add "$net" "$ifname" "$ADD_LOCAL_FQDN" start="$( dhcp_calc "$start" )" + + add_tag() { + tags="${tags}tag:$1," + } + config_list_foreach "$cfg" tag add_tag + nettag="${networkid:+set:${networkid},}" if [ "$limit" -gt 0 ] ; then @@ -508,7 +515,7 @@ dhcp_add() { if [ "$dhcpv4" != "disabled" ] ; then - xappend "--dhcp-range=$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}" + xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}" fi -- cgit v1.2.3