aboutsummaryrefslogtreecommitdiffstats
path: root/netwatch-notify.rsc
diff options
context:
space:
mode:
Diffstat (limited to 'netwatch-notify.rsc')
-rw-r--r--netwatch-notify.rsc16
1 files changed, 14 insertions, 2 deletions
diff --git a/netwatch-notify.rsc b/netwatch-notify.rsc
index 5c6ae40..1b6a005 100644
--- a/netwatch-notify.rsc
+++ b/netwatch-notify.rsc
@@ -52,6 +52,19 @@
:return ("Ran hook:\n" . $Hook);
}
+:local ResolveExpected do={
+ :local Name [ :tostr $1 ];
+ :local Expected [ :tostr $2 ];
+
+ :delay 100ms;
+
+ :if ([ :len [ /ip/dns/cache/find where name=$Name data=$Expected ] ] > 0) do={
+ :return true;
+ }
+
+ :return false;
+}
+
$ScriptLock $0;
:local ScriptFromTerminalCached [ $ScriptFromTerminal $0 ];
@@ -80,8 +93,7 @@ $ScriptLock $0;
:do {
:local Resolve [ :resolve ($HostInfo->"resolve") ];
:if ($Resolve != $HostVal->"host") do={
- :delay 100ms;
- :if ([ :len [ /ip/dns/cache/find where name=($HostInfo->"resolve") data=[ :tostr ($HostVal->"host") ] ] ] = 0) do={
+ :if ([ $ResolveExpected ($HostInfo->"resolve") ($HostVal->"host") ] = false) do={
$LogPrintExit2 info $0 ("Name '" . $HostInfo->"resolve" . [ $IfThenElse \
($HostInfo->"resolve" != $HostInfo->"name") ("' for " . $Type . " '" . \
$HostInfo->"name") "" ] . "' resolves to different address " . $Resolve . \