aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2021-06-30global-functions: $ScriptLock: allow to return...Gravatar Christian Hesse1-3/+8
... with true instead of breaking with error.
2021-06-30global-functions: $LogPrintExit2: allow origin-specific debugGravatar Christian Hesse1-1/+6
Add something like this in global-config-overlay: :global PrintDebugOverride { "dhcp-to-dns"=true; }
2021-06-28global-functions: $GetRandomNumber: use $HexToNumGravatar Christian Hesse1-11/+2
2021-06-28global-functions: $GetRandom20CharHex: do not remove otp...Gravatar Christian Hesse1-3/+1
... as it is instantly invalid anyway.
2021-06-25doc/notifications: change stroke colorGravatar Christian Hesse16-53/+48
This makes the stroke visible on black background.
2021-06-24lease-script: do not run in parallel on simultaneous deassignGravatar Christian Hesse1-2/+5
2021-06-24global-functions: $RandomDelay: allow to specify unit in second argumentGravatar Christian Hesse1-1/+2
2021-06-23ppp-on-up: use $LogPrintExit2Gravatar Christian Hesse1-3/+3
This will never print to terminal, nevertheless we want proper log with script name in prefix.
2021-06-23lease-script: use $LogPrintExit2Gravatar Christian Hesse1-4/+4
This will never print to terminal, nevertheless we want proper log with script name in prefix.
2021-06-23ipv6-update: use $LogPrintExit2Gravatar Christian Hesse1-4/+6
This will never print to terminal, nevertheless we want proper log with script name in prefix.
2021-06-23hotspot-to-wpa: add optional cleanup scriptchange-58Gravatar Christian Hesse7-3/+72
2021-06-23celebrating the 1.000th commit - hooray!change-57Gravatar Christian Hesse4-3/+4
2021-06-23notify about tag in scriptschange-56Gravatar Christian Hesse4-3/+4
2021-06-23ppp-on-up: add error handlingGravatar Christian Hesse1-2/+6
2021-06-23ppp-on-up: use 'provides' to find ppp-on-up scriptsGravatar Christian Hesse2-9/+6
2021-06-23lease-script: add error handlingGravatar Christian Hesse1-2/+6
2021-06-23lease-script: use 'provides' to find lease scriptsGravatar Christian Hesse8-25/+22
2021-06-23packages-update: use 'provides' to find backup scriptsGravatar Christian Hesse4-1/+7
2021-06-23update list of contributorsGravatar Christian Hesse1-0/+1
2021-06-21global-functions: $MkDir: abuse smb share to create directoryGravatar Christian Hesse1-7/+5
The smb feature is provided by system package... So we have it anyway. It gives some benefits compared to abusing fetch: * It is faster! * No need to alter, enable and restore a service! (The share is created disabled.) * Firewall rules can not break this. * No temporary file is created. * Less code! Let's hope we do not introduce new breakage. Closes #14
2021-06-21doc/netwatch-notify: hint on checking internet connectivityGravatar Christian Hesse1-0/+14
2021-06-21doc: add sample notificationsGravatar Christian Hesse27-0/+3052
2021-06-18doc/check-health: no capital character hereGravatar Christian Hesse1-1/+1
2021-06-18Makefile: generate html files for documentationGravatar Christian Hesse1-2/+2
2021-06-17email-backup: remove attachment when sentGravatar Christian Hesse1-1/+1
2021-06-17global-functions: $NotificationFunctions->"email": support removing attachmentGravatar Christian Hesse1-2/+8
2021-06-16upload-backup: remove file after uploadGravatar Christian Hesse1-0/+4
2021-06-16global-functions: $HexToNum: properly handle capital charactersGravatar Christian Hesse1-2/+2
2021-06-15log-forward: use $HexToNum, do not resend old messagesGravatar Christian Hesse1-6/+3
Now we know the order of messages and can compare. Changing the filter does no longer result in old messages being resent.
2021-06-15global-functions: introduce $HexToNumGravatar Christian Hesse1-0/+16
2021-06-10global-functions: $SendEMail2: fix name in arrayGravatar Christian Hesse1-1/+1
This did not send anything at all... Fixes #12
2021-06-09log-forward: implement reverse logic to include messages...change-55Gravatar Christian Hesse6-7/+20
... even if a filter matches to exclude them. Let's have an example: :global LogForwardFilter "(debug|info)"; :global LogForwardInclude "account"; This will forward everything about topic *account* (login, logout, failed login, ...) - even with topic *info*.
2021-06-09log-forward: update comments in global-configGravatar Christian Hesse1-3/+4