From bccdb47fdedf5cccd779fd54766db05dfd1741ab Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 29 Aug 2019 14:17:34 +0200 Subject: ipv6-update: calculate address with bitwise operator Support for bitwise operator was added in RouterOS 6.46beta38. --- ipv6-update | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ipv6-update b/ipv6-update index e21e6bb..86bd827 100644 --- a/ipv6-update +++ b/ipv6-update @@ -29,13 +29,10 @@ if ($OldPrefix != $PdPrefix) do={ :local Comment [ $ParseKeyValueStore ($RecordVal->"comment") ]; :local Prefix [ / ipv6 address get [ find where interface=($Comment->"interface") from-pool=$Pool global ] address ]; - :set Prefix [ :pick $Prefix 0 [ :find $Prefix "::/64" ] ]; - :if ($Prefix~"^[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:") do={ } else={ - :set Prefix ($Prefix . ":"); - } - - :log info ("Updating DNS record for " . ($RecordVal->"name") . ($RecordVal->"regexp") . \ - " to " . $Prefix . ":" . ($Comment->"suffix")); - / ip dns static set address=($Prefix . ":" . ($Comment->"suffix")) $Record; + :set Prefix [ :toip6 [ :pick $Prefix 0 [ :find $Prefix "/64" ] ] ]; + :local Address ($Prefix | ([ :toip6 ($RecordVal->"address") ] & ::ffff:ffff:ffff:ffff)); + + :log info ("Updating DNS record for " . ($RecordVal->"name") . ($RecordVal->"regexp") . " to " . $Address); + / ip dns static set address=$Address $Record; } } -- cgit v1.2.3-54-g00ecf