netwatch-notify: handle CNAME to multiple records

This commit is contained in:
Christian Hesse 2024-02-28 22:29:55 +01:00
parent 6f29c640e4
commit a924de274c
2 changed files with 12 additions and 3 deletions

View file

@ -83,9 +83,9 @@ with a resolvable name:
/tool/netwatch/add comment="notify, name=example.com, resolve=example.com";
This supports multiple A or AAAA records for a name just fine, but be
warned: A CNAME to multiple records will cause a high rate of configuration
changes (and flash writes)!
This supports multiple A or AAAA records for a name just fine, even a CNAME
to those. But be warned: CNAME chains to multiple records will cause a high
rate of configuration changes (and flash writes)!
### No notification on host down

View file

@ -62,6 +62,15 @@
:return true;
}
:local Cname [ /ip/dns/cache/find where name=$Name type="CNAME" ];
:if ([ :len $Cname ] > 0) do={
:set Cname [ /ip/dns/cache/get $Cname data ];
:set Cname [ :pick $Cname 0 ([ :len $Cname ] - 1) ];
:if ([ :len [ /ip/dns/cache/find where name=$Cname data=$Expected ] ] > 0) do={
:return true;
}
}
:return false;
}