aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
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...•••... now that we have it in global-functions. Gravatar Christian Hesse1-6/+0
2021-12-07email-backup: drop warning on RouterOS v7...•••... now that we have it in global-functions. Gravatar Christian Hesse1-6/+0
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 firmware•••(I would like to show a note if the upgrade is pending... But did not find a way to get that information. Is there?) Gravatar Christian Hesse1-0/+2
2021-11-19accesslist-duplicates: read more than a single digit•••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. Gravatar Christian Hesse3-6/+12
2021-11-18README: no capitals here...Gravatar Christian Hesse1-1/+1
2021-11-16check-health: support hard lower limit for voltage•••... to detect slow decrease of voltage, for example with UPS. change-69Gravatar Christian Hesse6-4/+19
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 $LogPrintExit•••... which has been replaced by $LogPrintExit2 some time ago. Gravatar Christian Hesse1-9/+0
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 limits•••... if you need to limit bandwidth use queues instead. Gravatar Christian Hesse1-11/+2
2021-10-01global-functions: $NotificationFunctions->"email": check for valid settings•••No need to queue mails if 'address' and 'from' are not specified... Gravatar Christian Hesse1-1/+2
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...•••... and make sure copy-and-paste with code does not fail. Also end all commands with a semicolon for Github copy button. Gravatar Christian Hesse12-27/+41
2021-09-21hotspot-to-wpa-cleanup: match dhcp server name•••... as we do not want the hotspot's lease to become static. Gravatar Christian Hesse1-3/+4
2021-09-21global-functions.d/inspectvar: add $InspectVar...•••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 change-64Gravatar Christian Hesse5-3/+44
2021-09-21global-functions: notify about move of $IPCalc and $ScriptRunOnce to modules•••Just install with... $ScriptInstallUpdate global-functions.d/ipcalc ... and/or... $ScriptInstallUpdate global-functions.d/scriptrunonce ... and use the functions as before. change-63Gravatar Christian Hesse4-3/+4
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 R1•••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 Gravatar Christian Hesse1-0/+242
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 CA1•••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 Gravatar Christian Hesse1-0/+174
2021-09-08global-functions*: syntax for ROS 7.x•••Strings with escape sequence have to be enclosed in parentheses. Looks like RouterOS 7.x is stricter here... routeros-7.1rc3Gravatar Christian Hesse3-8/+8
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 index•••This should mitigate race conditions while rewriting the array. Gravatar Christian Hesse1-17/+50
2021-08-31global-functions: $ScriptLock: do not store but calculate job count•••This should mitigate some more race conditions. Gravatar Christian Hesse1-7/+10
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 address•••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. Gravatar Christian Hesse1-1/+3
2021-08-25global-functions.d/notification-telegram: for syntax for ROS 7.x•••Strings with escape sequence have to be enclosed in parentheses. Looks like RouterOS 7.x is stricter here... routeros-7.1rc1-1Gravatar Christian Hesse1-1/+1
2021-08-16update list of contributorsGravatar Christian Hesse1-0/+1
2021-07-25global-functions: $ScriptLock: check for successful removal of ticket•••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. Gravatar Christian Hesse1-5/+9
2021-07-15lease-script: drop differentiation of assign / deassign...•••... not that we have early locking. Gravatar Christian Hesse9-15/+12
2021-07-15lease-script: use $ScriptLock•••There were still ways to produce errors from lease scripts... Let's lock earlier, this should fix it. Gravatar Christian Hesse1-7/+12
2021-07-15update list of contributorsGravatar Christian Hesse1-0/+1
2021-07-15global-functions: $ScriptLock: fix off-by-one check...•••... for stale job tickets Signed-off-by: Christian Hesse <mail@eworm.de> Gravatar Ben Harris1-1/+1
2021-07-11collect-wireless-mac: check for existence of mac address•••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. Gravatar Christian Hesse3-107/+119
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 & underline•••This makes the subject visually delimited. Gravatar Christian Hesse1-10/+11
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 variable•••This was a left-over from re-run message. Gravatar Christian Hesse1-1/+0
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 comment•••This was true, but the mac address is no longer unknown after it was added to address list in comment. Gravatar Christian Hesse3-3/+3
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 order•••The order may be important: `collect-wireless-mac` can add a dns name in notification, thus `dhcp-to-dns` should run first. Gravatar Christian Hesse10-18/+27
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 hooks•••We already had syntax validation, but a script with valid synctax can still fail to run... Gravatar Christian Hesse1-2/+10
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 cap•••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. change-59Gravatar Michael Gisbers6-4/+10
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 scripts•••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. Gravatar Christian Hesse1-5/+7
2021-07-01lease-script: drop the delay magic...•••... as this should be handled by $ScriptLock in lease scripts now. Gravatar Christian Hesse1-6/+0
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 ticket•••Does not matter what the ticket looks like, but using hex string it is not converted to number. Gravatar Christian Hesse1-2/+2
2021-07-01global-functions: $ScriptLock: use a limit on lock...•••... to make sure it does not lock forever. Gravatar Christian Hesse1-4/+6
2021-06-30global-functions: $ScriptLock: allow to wait for lockGravatar Christian Hesse1-0/+6
2021-06-30global-functions: $ScriptLock: rework with tickets•••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. Gravatar Christian Hesse1-6/+40
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...•••... with true instead of breaking with error. Gravatar Christian Hesse1-3/+8
2021-06-30global-functions: $LogPrintExit2: allow origin-specific debug•••Add something like this in global-config-overlay: :global PrintDebugOverride { "dhcp-to-dns"=true; } Gravatar Christian Hesse1-1/+6
2021-06-28global-functions: $GetRandomNumber: use $HexToNumGravatar Christian Hesse1-11/+2
2021-06-28global-functions: $GetRandom20CharHex: do not remove otp...•••... as it is instantly invalid anyway. Gravatar Christian Hesse1-3/+1
2021-06-25doc/notifications: change stroke color•••This makes the stroke visible on black background. Gravatar Christian Hesse16-53/+48