diff --git a/routeros/tp10-ddns-cf-updater.rsc b/routeros/tp10-ddns-cf-updater.rsc index 583c90b..5b153e3 100644 --- a/routeros/tp10-ddns-cf-updater.rsc +++ b/routeros/tp10-ddns-cf-updater.rsc @@ -29,10 +29,24 @@ :local WanDhcpName "client1" # ----------------------------------------------------------------------------- -# Token aus der globalen Variable holen (NIE im Skriptkopf) -:global cfDdnsToken -:if ([:typeof $cfDdnsToken] = "nothing") do={ - :log error "[tp10-ddns] cfDdnsToken nicht gesetzt - Abbruch" +# Token aus /system script environment holen (NIE im Skriptkopf, NIE per :global). +# Grund (2026-10-03): :global cfDdnsToken liest im Skript-Kontext "nothing", obwohl +# /system script environment cfDdnsToken gesetzt ist. CLI-Scope und Skript-Scope sind +# auf RouterOS 7.24 unterschiedlich. `/system script environment get` ist scope-unabhaengig. +:do { + :local tk "" + :local found [/system script environment find name=cfDdnsToken] + :if ([:len $found] > 0) do={ + :set tk [/system script environment get [find name=cfDdnsToken] value] + } + :if ([:typeof $tk] = "") do={ + :log error "[tp10-ddns] cfDdnsToken nicht gesetzt - Abbruch" + :error "cfDdnsToken fehlt" + } + :global cfDdnsToken + :set cfDdnsToken $tk +} on-error={ + :log error "[tp10-ddns] cfDdnsToken nicht lesbar - Abbruch" :error "cfDdnsToken fehlt" }