aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
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
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 $LogPrintExit2•••This will never print to terminal, nevertheless we want proper log with script name in prefix. Gravatar Christian Hesse1-3/+3
2021-06-23lease-script: use $LogPrintExit2•••This will never print to terminal, nevertheless we want proper log with script name in prefix. Gravatar Christian Hesse1-4/+4
2021-06-23ipv6-update: use $LogPrintExit2•••This will never print to terminal, nevertheless we want proper log with script name in prefix. Gravatar Christian Hesse1-4/+6
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 directory•••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 Gravatar Christian Hesse1-7/+5
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 messages•••Now we know the order of messages and can compare. Changing the filter does no longer result in old messages being resent. Gravatar Christian Hesse1-6/+3
2021-06-15global-functions: introduce $HexToNumGravatar Christian Hesse1-0/+16
2021-06-10global-functions: $SendEMail2: fix name in array•••This did not send anything at all... Fixes #12 Gravatar Christian Hesse1-1/+1
2021-06-09log-forward: implement reverse logic to include messages...•••... 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*. change-55Gravatar Christian Hesse6-7/+20
2021-06-09log-forward: update comments in global-configGravatar Christian Hesse1-3/+4
2021-06-09doc/log-forward: mention MatrixGravatar Christian Hesse1-1/+1
2021-06-08global-functions: make Telegram notifications a modulechange-54Gravatar Christian Hesse5-160/+169
2021-06-08global-functions: implement notifications via Matrix•••Matrix is an open network for secure, decentralized communication - and it has a web api. A warning on message type: Using 'm.notice' breaks rendering on Element for Android (no fixed width font) and does not pop up desktop notification. Thus we use 'm.text'. Should be safe as we do not send the messages in response to other messages. https://matrix.org/ change-53Gravatar Michael Gisbers15-18/+186
2021-06-08global-functions: make notification functions extensible•••This allows to add notification functions without overloading functions. Just add it into the array: :set ($NotificationFunctions->"fancy-messager") do={ # notification magic here... } Adding functions $SendFancyMessager and/or $SendFancyMessager2 may be useful. Optionally a function to flush a queue may be required. A BIG FAT WARNING about function parameters: Calling a function from array results in $0 for the function name being skipped. That's why we have to add the function name manually! Gravatar Christian Hesse1-133/+159
2021-06-08global-functions: $ScriptInstallUpdate: drop the re-run message•••This makes sense just rarely... For important changes we have the migration mechanism. So just drop this. Gravatar Christian Hesse1-5/+0
2021-06-08global-functions: $ScriptInstallUpdate: reload configuration laterGravatar Christian Hesse1-7/+12
2021-06-08global-functions: $ScriptInstallUpdate: reload functions just onceGravatar Christian Hesse1-6/+11
2021-06-08global-functions: support loading modules•••If script's name starts with "global-functions.d/" it is handled as module: * loaded at startup * triggers reload on update Gravatar Christian Hesse1-1/+6
2021-06-08INITIAL-COMMANDS: make github copy function work•••The Github copy function skips all line breaks, so add some extra semicolons to fix syntax. Gravatar Christian Hesse1-3/+3
2021-06-06update list of contributorsGravatar Christian Hesse1-0/+1
2021-05-26Makefile: remove extra whitespaceGravatar Christian Hesse1-1/+1
2021-05-24ipv6-update: apply a mask on prefix•••Fixes #11 Gravatar Christian Hesse1-1/+1
2021-05-21check-certificates: fix variable nameGravatar Christian Hesse1-1/+1
2021-05-19global-functions: $DownloadPackage: quote package nameGravatar Christian Hesse1-2/+2
2021-05-18netwatch-notify: add info on hook in notificationGravatar Christian Hesse1-8/+12
2021-05-18Merge branch 'lets-encrypt-ISRG-X1' into nextGravatar Christian Hesse7-94/+10
2021-05-18update Let's Encrypt trust chain•••Drop 'DST Root CA X3', use 'ISRG Root X1' instead. The migration code makes sure that... * the intermediate certificate 'R3' is signed by 'ISRG Root X1' * 'ISRG Root X1' is self-signed, not cross-signed by 'DST Root CA X3' * 'DST Root CA X3' is finally gone change-52Gravatar Christian Hesse4-3/+5
2021-05-18drop certificate DST Root CA X3•••Let's Encrypt planned the transition to ISRG's root certificate ("ISRG Root X1") on July 8, 2019, but postponed several times. Finally they found another solution: A certificate 'ISRG Root X1', but cross-signed with 'DST Root CA X3' and with a livetime that exceeds that of the root CA. This is said to work for most operating system where root certificate authorities are just 'trust anchors'. I doubt this is true for RouterOS, where certificates are just imported into the certificate store. So let's migrate to 'ISRG Root X1' now. Gravatar Christian Hesse3-91/+5
2021-05-17add 'ipsec-to-dns'change-51Gravatar Christian Hesse8-3/+120
2021-05-17dhcp-to-dns: use $0 in stringsGravatar Christian Hesse1-2/+2
2021-05-17dhcp-to-dns: put string into variableGravatar Christian Hesse1-4/+5
2021-05-07README: use svg logoGravatar Christian Hesse1-1/+1