From: Hans Dedecker Date: Fri, 2 Sep 2016 11:51:09 +0000 (+0200) Subject: dnsmasq: Add match section support X-Git-Tag: v17.01.0-rc1~1415 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=32f4777530bc814cb878c0436bc26cded53a3a8b;p=openwrt%2Fstaging%2Fxback.git dnsmasq: Add match section support Match sections allow to set a tag specified by the option networkid if the client sends an option and optionally the option value specified by the match option. The force option will convert the dhcp-option to force-dhcp-option if set to 1 in the dnsmasq config if options are specified in the dhcp_option option. config match option networkid tag option match 12,myhost option force 1 list dhcp_option '3,192.168.1.1' Signed-off-by: Hans Dedecker --- diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index 4cd5f673d8..69c375c395 100644 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -351,6 +351,22 @@ dhcp_vendorclass_add() { dhcp_option_add "$cfg" "$networkid" "$force" } +dhcp_match_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get match "$cfg" match + [ -n "$match" ] || return 0 + + xappend "--dhcp-match=$networkid,$match" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + dhcp_host_add() { local cfg="$1" @@ -669,6 +685,7 @@ start_service() { config_foreach dhcp_circuitid_add circuitid config_foreach dhcp_remoteid_add remoteid config_foreach dhcp_subscrid_add subscrid + config_foreach dhcp_match_add match config_foreach dhcp_domain_add domain config_foreach dhcp_hostrecord_add hostrecord config_foreach dhcp_relay_add relay