TP10: Global-Scope-Fix für cfDdnsToken im DDNS-Updater (RouterOS 7.24 Skript-Scope vs CLI-Scope)
Problem: :global cfDdnsToken liest im Skript-Kontext 'nothing', obwohl /system script environment cfDdnsToken gesetzt ist (53 Zeichen, live verifiziert). Fix: /system script environment get statt :global — scope-unabhängig auf ROS 7.24. Skript importiert als tp10-ddns-bf4, Trigger: DHCP-Client client1 (Lease-Event), kein stündlicher Scheduler nötig (Entscheidung 2026-10-03). Recovery-Lücke dokumentiert: GC-Template rendert kein /system script / /system scheduler — Recovery von null hätte Updater nicht. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -29,11 +29,25 @@
|
|||||||
:local WanDhcpName "client1"
|
:local WanDhcpName "client1"
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
# Token aus der globalen Variable holen (NIE im Skriptkopf)
|
# Token aus /system script environment holen (NIE im Skriptkopf, NIE per :global).
|
||||||
:global cfDdnsToken
|
# Grund (2026-10-03): :global cfDdnsToken liest im Skript-Kontext "nothing", obwohl
|
||||||
:if ([:typeof $cfDdnsToken] = "nothing") do={
|
# /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"
|
:log error "[tp10-ddns] cfDdnsToken nicht gesetzt - Abbruch"
|
||||||
:error "cfDdnsToken fehlt"
|
:error "cfDdnsToken fehlt"
|
||||||
|
}
|
||||||
|
:global cfDdnsToken
|
||||||
|
:set cfDdnsToken $tk
|
||||||
|
} on-error={
|
||||||
|
:log error "[tp10-ddns] cfDdnsToken nicht lesbar - Abbruch"
|
||||||
|
:error "cfDdnsToken fehlt"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ---- WAN-IPv4 aus der DHCP-Lease (Quelle: Liwest, kein Dritter) ------------
|
# ---- WAN-IPv4 aus der DHCP-Lease (Quelle: Liwest, kein Dritter) ------------
|
||||||
|
|||||||
Reference in New Issue
Block a user