From 779b3b8872b23b784c331d7a454c86439046f5d3 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Mar 2023 15:49:41 +0200 Subject: [PATCH] dhcp-to-dns: use better condition The condition worked, but could match others (AAAA, NXDOMAIN, ...) as well (though these should not exist). The problem is that matching with `type=A` does not return any results. For historical reasons A records have no type, thus can be matched with `!type`. I opened an issue to fix this... (SUP-111312) So let's assum `!type` works and `type=A` could become valid... --- dhcp-to-dns.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhcp-to-dns.rsc b/dhcp-to-dns.rsc index 259a904..67ecacd 100644 --- a/dhcp-to-dns.rsc +++ b/dhcp-to-dns.rsc @@ -40,7 +40,7 @@ $ScriptLock $0 false 10; } :local PlaceBefore ([ /ip/dns/static/find where (name=$CommentString or (comment=$CommentString and name=-)) type=NXDOMAIN disabled ]->0); -:foreach DnsRecord in=[ /ip/dns/static/find where comment~("^" . $CommentPrefix) !(type=CNAME) ] do={ +:foreach DnsRecord in=[ /ip/dns/static/find where comment~("^" . $CommentPrefix) (!type or type=A) ] do={ :local DnsRecordVal [ /ip/dns/static/get $DnsRecord ]; :local MacAddress [ $CharacterReplace ($DnsRecordVal->"comment") $CommentPrefix "" ]; :if ([ :len [ /ip/dhcp-server/lease/find where mac-address=$MacAddress address=($DnsRecordVal->"address") status=bound ] ] > 0) do={