aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-12-17log-forward: fix forwarding first messageGravatar Christian Hesse1-1/+1
Pulling the power cable results in log message on next boot: dec/16 18:28:28 system,error,critical router rebooted without proper shutdown, probably power outage This was not forwarded as it had the numeric id 0, which is not greater than the zero we initialized with. Now initialized with -1 when no log has been forwarded to fix this.
2021-12-16INITIAL-COMMANDS: adopt changes, no need to run global-config-overlayGravatar Christian Hesse1-2/+2
2021-12-16doc/ssh-keys-import: number keys, do not overwrite on same commentGravatar Christian Hesse1-1/+1
2021-12-16doc/ssh-keys-import: handle RSA keys onlyGravatar Christian Hesse1-1/+1
Sadly RouterOS does not (yet) support ed25519 keys...
2021-12-16update list of contributorsGravatar Christian Hesse1-0/+1
2021-12-15update list of contributorsGravatar Christian Hesse1-0/+1
2021-12-14global-functions: $DownloadPackage: make directory firstGravatar Christian Hesse1-0/+6
The fetch command creates the directory itself, however using $MkDir gives better error message when creating directory fails.
2021-12-14global-functions: $MkDir: log errorGravatar Christian Hesse1-1/+3
2021-12-14global-functions: $NotificationFunctions->"email": do not declare unused ↵Gravatar Christian Hesse1-1/+0
function
2021-12-13global-functions: $DeviceInfo: show license level if availableGravatar Christian Hesse1-0/+3
This now shows license level for CHR. The property is named different for Routerboards. As these have the license bundled to hardware anyway we do not show it there.
2021-12-13README: changes for RouterOS v6change-71Gravatar Christian Hesse5-3/+16
2021-12-10global-functions: $ScriptLock: simplify cleanup codeGravatar Christian Hesse1-5/+2
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