dnsmasq: add match_tag for --dhcp-host
A set of tags can be specified for --dhcp-host option to restrict the assignment to the requests which match all the tags. Example usage: config vendorclass option networkid 'udhcp' option vendorclass 'udhcp' config host option mac '*:*:*:*:*:*' list match_tag 'switch.10' list match_tag 'udhcp' option ip '192.168.25.10' Signed-off-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
parent
a667f6b8dd
commit
8a6b1a8d29
1 changed files with 8 additions and 3 deletions
11
package/network/services/dnsmasq/files/dnsmasq.init
Normal file → Executable file
11
package/network/services/dnsmasq/files/dnsmasq.init
Normal file → Executable file
|
@ -332,7 +332,7 @@ dhcp_match_add() {
|
||||||
|
|
||||||
dhcp_host_add() {
|
dhcp_host_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local hosttag nametime addrs duids macs tags
|
local hosttag nametime addrs duids macs tags mtags
|
||||||
|
|
||||||
config_get_bool force "$cfg" force 0
|
config_get_bool force "$cfg" force 0
|
||||||
|
|
||||||
|
@ -357,6 +357,11 @@ dhcp_host_add() {
|
||||||
config_get duid "$cfg" duid
|
config_get duid "$cfg" duid
|
||||||
config_get tag "$cfg" tag
|
config_get tag "$cfg" tag
|
||||||
|
|
||||||
|
add_tag() {
|
||||||
|
mtags="${mtags}tag:$1,"
|
||||||
|
}
|
||||||
|
config_list_foreach "$cfg" match_tag add_tag
|
||||||
|
|
||||||
if [ -n "$mac" ]; then
|
if [ -n "$mac" ]; then
|
||||||
# --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap
|
# --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap
|
||||||
# many MAC are possible to track a laptop ON/OFF dock
|
# many MAC are possible to track a laptop ON/OFF dock
|
||||||
|
@ -394,9 +399,9 @@ dhcp_host_add() {
|
||||||
|
|
||||||
if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
|
if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
|
||||||
addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
|
addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
|
||||||
xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime"
|
xappend "--dhcp-host=$mtags$macs${duids:+,$duids}$hosttag$addrs$nametime"
|
||||||
else
|
else
|
||||||
xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime"
|
xappend "--dhcp-host=$mtags$macs$hosttag${ip:+,$ip}$nametime"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue