aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-12-09global-functions: $ScriptLock: remove ticket in a loopGravatar Christian Hesse1-1/+2
This was not required with RouterOS v6, but for any reason removing a ticket may fail with RouterOS v7 in very rare cases. So remove in a loop...
2021-12-09global-functions: $ScriptLock: cleanup in dedicated functionGravatar Christian Hesse1-4/+13
2021-12-09mod/ipcalc: introduce $IPCalcReturnGravatar Christian Hesse1-9/+20
2021-12-09mod/inspectvar: truncate value if too longGravatar Christian Hesse1-1/+3
2021-12-09mod/inspectvar: introduce $InspectVarReturnGravatar Christian Hesse1-8/+20
2021-12-09global-functions: $ScriptLock: initialize earlierGravatar Christian Hesse1-4/+3
2021-12-09global-functions: $ScriptLock: initialize empty array on cleanupGravatar Christian Hesse1-2/+2
2021-12-07upload-backup: drop warning on RouterOS v7...Gravatar Christian Hesse1-6/+0
... now that we have it in global-functions.
2021-12-07email-backup: drop warning on RouterOS v7...Gravatar Christian Hesse1-6/+0
... now that we have it in global-functions.
2021-12-07global-functions: give a hint on RouterOS v7Gravatar Christian Hesse1-0/+6
2021-12-07global-config: load overlay automaticallyGravatar Christian Hesse4-6/+14
2021-12-07check-routeros-update: lock against multiple invocationGravatar Christian Hesse1-0/+3
2021-12-07README: changes for RouterOS v7change-70Gravatar Christian Hesse5-4/+22
2021-12-02doc/netwatch-notify: add missing empty lineGravatar Christian Hesse1-0/+1
2021-11-22global-functions: $DeviceInfo: add current firmwareGravatar Christian Hesse1-0/+2
(I would like to show a note if the upgrade is pending... But did not find a way to get that information. Is there?)
2021-11-19accesslist-duplicates: read more than a single digitGravatar Christian Hesse3-6/+12
With RouterOS 6.x a print always starts with numeric id zero, then counts up. This is no longer true with RouterOS 7.x... Thus we have to handle two or more digits in input.
2021-11-18README: no capitals here...Gravatar Christian Hesse1-1/+1
2021-11-16check-health: support hard lower limit for voltagechange-69Gravatar Christian Hesse6-4/+19
... to detect slow decrease of voltage, for example with UPS.
2021-11-16check-health: indicate voltage increase or decreaseGravatar Christian Hesse3-2/+6
2021-11-16reintroduce global-waitchange-68Gravatar Christian Hesse9-6/+65
2021-11-16global-functions: drop deprecated function $LogPrintExitGravatar Christian Hesse1-9/+0
... which has been replaced by $LogPrintExit2 some time ago.
2021-11-15shorten modules directory name (global-functions.d -> mod)change-67Gravatar Christian Hesse14-23/+25
2021-11-15bridge-port-to-default -> global-functions.d/bridge-port-tochange-66Gravatar Christian Hesse10-107/+79
2021-11-12add global-functions.d/bridge-port-vlanchange-65Gravatar Christian Hesse8-3/+159
2021-11-11doc: move notification images to script-specific directoriesGravatar Christian Hesse27-16/+16
2021-11-03hotspot-to-wpa: drop support for tx limitsGravatar Christian Hesse1-11/+2
... if you need to limit bandwidth use queues instead.
2021-10-01global-functions: $NotificationFunctions->"email": check for valid settingsGravatar Christian Hesse1-1/+2
No need to queue mails if 'address' and 'from' are not specified...
2021-10-01global-functions: $DeviceInfo: do not fail on non-RouterBoard with ROS 7.xGravatar Christian Hesse1-1/+4
2021-09-28global-functions.d/notification-telegram: fix calculation on cut offGravatar Christian Hesse1-2/+3
2021-09-22doc/accesslist-duplicates: use real screenshotGravatar Christian Hesse2-9/+2
2021-09-21README: add a note about date and timeGravatar Christian Hesse1-0/+4
2021-09-21README: use real screenshots...Gravatar Christian Hesse12-27/+41
... and make sure copy-and-paste with code does not fail. Also end all commands with a semicolon for Github copy button.
2021-09-21hotspot-to-wpa-cleanup: match dhcp server nameGravatar Christian Hesse1-3/+4
... as we do not want the hotspot's lease to become static.
2021-09-21global-functions.d/inspectvar: add $InspectVar...change-64Gravatar Christian Hesse5-3/+44
to inspect variables. This is useful for variables with (nested) arrays, for example inspecting $NetwatchNotify (from netwatch-notify): [admin@Mikrotik] > $InspectVar $NetwatchNotify -type-> array -key-> quad-one -type-> array -key-> count -type-> num -value-> 0 -key-> notified -type-> bool -value-> false -key-> parent -type-> nothing -key-> resolve-failed -type-> nothing -key-> since -type-> nothing -key-> example.com -type-> array -key-> count -type-> num -value-> 0 -key-> notified -type-> bool -value-> false -key-> parent -type-> str -value-> quad-one -key-> resolve-failed -type-> nothing -key-> since -type-> nothing
2021-09-21global-functions: notify about move of $IPCalc and $ScriptRunOnce to moduleschange-63Gravatar Christian Hesse4-3/+4
Just install with... $ScriptInstallUpdate global-functions.d/ipcalc ... and/or... $ScriptInstallUpdate global-functions.d/scriptrunonce ... and use the functions as before.
2021-09-21global-functions: move $ScriptRunOnce to optional moduleGravatar Christian Hesse3-41/+48
2021-09-21global-functions: move $IPCalc to optional moduleGravatar Christian Hesse2-30/+35
2021-09-21upload-backup: warn on missing sensitive information with ROS 7.xGravatar Christian Hesse1-0/+6
2021-09-21email-backup: warn on missing sensitive information with ROS 7.xGravatar Christian Hesse1-0/+6
2021-09-21certs: drop old chain GTS CA 1O1 / GlobalSignGravatar Christian Hesse1-186/+0
2021-09-20certs: add new chain GTS CA 1C3 / GTS Root R1Gravatar Christian Hesse1-0/+242
This is used by Google DNS (8.8.8.8). $CertificateAvailable "GTS CA 1C3" /ip dns set use-doh-server=https://8.8.8.8/dns-query verify-doh-cert=yes
2021-09-20certs: drop old intermediate cert DigiCert ECC Secure Server CAGravatar Christian Hesse1-166/+0
2021-09-20certs: add new intermediate cert DigiCert TLS Hybrid ECC SHA384 2020 CA1Gravatar Christian Hesse1-0/+174
This is used by Cloudflare DNS (1.1.1.1) and Quard9 (9.9.9.9). $CertificateAvailable "DigiCert TLS Hybrid ECC SHA384 2020 CA1" /ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes $CertificateAvailable "DigiCert TLS Hybrid ECC SHA384 2020 CA1" /ip dns set use-doh-server=https://9.9.9.9/dns-query verify-doh-cert=yes
2021-09-08global-functions*: syntax for ROS 7.xrouteros-7.1rc3Gravatar Christian Hesse3-8/+8
Strings with escape sequence have to be enclosed in parentheses. Looks like RouterOS 7.x is stricter here...
2021-09-02global-functions: $CertificateAvailable: drop version checkGravatar Christian Hesse1-5/+0
2021-09-01global-functions: $RequiredRouterOS: allow to use without warningGravatar Christian Hesse1-6/+9
2021-08-31global-functions: $ScriptLock: handle array by indexGravatar Christian Hesse1-17/+50
This should mitigate race conditions while rewriting the array.
2021-08-31global-functions: $ScriptLock: do not store but calculate job countGravatar Christian Hesse1-7/+10
This should mitigate some more race conditions.
2021-08-30lease-script: move debug output upGravatar Christian Hesse1-3/+3
2021-08-27check-health: use $ScriptLockGravatar Christian Hesse1-0/+3
2021-08-27netwatch-notify: use $ScriptLockGravatar Christian Hesse1-0/+3
2021-08-26dhcp-to-dns: check for existence of addressGravatar Christian Hesse1-1/+3
Chances are that $LeaseVal is an array with just an id - no idea why this happens. So do not check for array but existence of address.
2021-08-25global-functions.d/notification-telegram: for syntax for ROS 7.xrouteros-7.1rc1-1Gravatar Christian Hesse1-1/+1
Strings with escape sequence have to be enclosed in parentheses. Looks like RouterOS 7.x is stricter here...
2021-08-16update list of contributorsGravatar Christian Hesse1-0/+1
2021-07-25global-functions: $ScriptLock: check for successful removal of ticketGravatar Christian Hesse1-5/+9
The script is already locked, so there is no second script to remove a ticket at the same time. However a new script can add a new ticket and overwrite the removal... Thus check for successful removal anyway.
2021-07-15lease-script: drop differentiation of assign / deassign...Gravatar Christian Hesse9-15/+12
... not that we have early locking.
2021-07-15lease-script: use $ScriptLockGravatar Christian Hesse1-7/+12
There were still ways to produce errors from lease scripts... Let's lock earlier, this should fix it.
2021-07-15update list of contributorsGravatar Christian Hesse1-0/+1
2021-07-15global-functions: $ScriptLock: fix off-by-one check...Gravatar Ben Harris1-1/+1
... for stale job tickets Signed-off-by: Christian Hesse <mail@eworm.de>
2021-07-11collect-wireless-mac: check for existence of mac addressGravatar Christian Hesse3-107/+119
Chance are that $RegVal is an array with just an id - no idea why this happens. So do not check for array but existence of mac address.
2021-07-10global-functions: introduce $ScriptRunOncechange-62Gravatar Christian Hesse4-3/+49
2021-07-09global-functions: $ScriptInstallUpdate: add error handling for changelogGravatar Christian Hesse1-1/+5
2021-07-09global-functions.d/notification-telegram: subject in bold & underlineGravatar Christian Hesse1-10/+11
This makes the subject visually delimited.
2021-07-09finally remove old scriptschange-61Gravatar Christian Hesse9-38/+5
2021-07-09global-functions: $ScriptInstallUpdate: add error handling for migrationGravatar Christian Hesse1-1/+5
2021-07-09global-functions: $ScriptInstallUpdate: drop unused variableGravatar Christian Hesse1-1/+0
This was a left-over from re-run message.
2021-07-09global-functions: $ScriptInstallUpdate: drop the migration patternGravatar Christian Hesse1-1/+1
2021-07-09doc/netwatch-notify: hint on escaping, with exampleGravatar Christian Hesse1-2/+2
2021-07-09netwatch-notify: implement pre-down hookchange-60Gravatar Christian Hesse6-3/+11
2021-07-09collect-wireless-mac: remove 'unknown' from message and commentGravatar Christian Hesse3-3/+3
This was true, but the mac address is no longer unknown after it was added to address list in comment.
2021-07-09global-functions: $ScriptLock: drop variable, just returnGravatar Christian Hesse1-3/+2
2021-07-08global-functions: $ScriptLock: make ticket management more reliableGravatar Christian Hesse1-10/+27
2021-07-08lease-script: add the order in logGravatar Christian Hesse1-2/+2
2021-07-08lease-script: implement script orderGravatar Christian Hesse10-18/+27
The order may be important: `collect-wireless-mac` can add a dns name in notification, thus `dhcp-to-dns` should run first.
2021-07-08lease-script: modify the tagGravatar Christian Hesse9-10/+10
2021-07-08netwatch-notify: run hook from a functionGravatar Christian Hesse1-23/+26
2021-07-08netwatch-notify: add error handling for hooksGravatar Christian Hesse1-2/+10
We already had syntax validation, but a script with valid synctax can still fail to run...
2021-07-07doc/lease-script: hint on script installation/execution orderGravatar Christian Hesse1-1/+6
2021-07-07doc/lease-script: fix linkGravatar Christian Hesse1-1/+1
2021-07-07collect-wireless-mac: use $EitherOr and simplify codeGravatar Christian Hesse3-12/+6
2021-07-07collect-wireless-mac: do not fail on missing dns recordGravatar Christian Hesse3-9/+12
2021-07-06collect-wireless-mac: rework, more use of arraysGravatar Christian Hesse3-61/+50
2021-07-06ospf-to-leds: do not flood but log properlyGravatar Christian Hesse1-1/+2
2021-07-05doc/netwatch-notify: hint on checking specific ispGravatar Christian Hesse1-0/+17
2021-07-01check-routeros-update: allow update for capchange-59Gravatar Michael Gisbers6-4/+10
If CAPsMAN is running on a device with just 16MB flash downloading the packages is not possible (or at least lost at reboot). So allow a CAP to update with opt-in.
2021-07-01collect-wireless-mac: properly handle vanished deviceGravatar Christian Hesse3-18/+45
2021-07-01dhcp-to-dns: fix static lease that lost bound statusGravatar Christian Hesse1-1/+4
2021-07-01dhcp-to-dns: properly handle vanished leaseGravatar Christian Hesse1-23/+31
2021-07-01lease-script: do not run too many instances of scriptsGravatar Christian Hesse1-5/+7
Every instance of the scripts does all the work. If one script is running and a second script is waiting we do not have to start a third one.
2021-07-01lease-script: drop the delay magic...Gravatar Christian Hesse1-6/+0
... as this should be handled by $ScriptLock in lease scripts now.
2021-07-01hotspot-to-wpa-cleanup: lock script (and wait)Gravatar Christian Hesse1-0/+3
2021-07-01dhcp-to-dns: lock script (and wait)Gravatar Christian Hesse1-0/+3
2021-07-01collect-wireless-mac: wait when locking scriptGravatar Christian Hesse3-3/+3
2021-07-01Merge branch 'ScriptLock' into nextGravatar Christian Hesse1-3/+58
2021-07-01global-functions: $ScriptLock: use hex string for ticketGravatar Christian Hesse1-2/+2
Does not matter what the ticket looks like, but using hex string it is not converted to number.
2021-07-01global-functions: $ScriptLock: use a limit on lock...Gravatar Christian Hesse1-4/+6
... to make sure it does not lock forever.
2021-06-30global-functions: $ScriptLock: allow to wait for lockGravatar Christian Hesse1-0/+6
2021-06-30global-functions: $ScriptLock: rework with ticketsGravatar Christian Hesse1-6/+40
Getting the order right is not easy... We use a global variable to store "tickets" in an array. Based on that scripts know their order.
2021-06-30global-functions: $ScriptLock: check if script is runningGravatar Christian Hesse1-0/+4
2021-06-30global-functions: $ScriptLock: check if script existsGravatar Christian Hesse1-0/+4