Commit graph

3212 commits

Author SHA1 Message Date
Christian Hesse
edb8ad9a2e Makefile: clean up and add phony targets 2025-11-11 23:59:56 +01:00
Christian Hesse
c0e4f411c2 global-functions: $ScriptInstallUpdate: extra actions on 'not found' only 2025-11-11 23:59:56 +01:00
Christian Hesse
e3cf008ec1 global-functions: $ScriptInstallUpdate: either or...
... but not both.
2025-11-11 23:59:56 +01:00
Christian Hesse
1bdca31985 global-functions: $ScriptInstallUpdate: give hint on ignore
Fixes: https://github.com/eworm-de/routeros-scripts/issues/112
2025-11-11 23:59:56 +01:00
Christian Hesse
40a581e013 contrib/checksums.sh: output to stdout...
... and let the Makefile redirect.
2025-11-11 23:59:56 +01:00
Christian Hesse
df970f3366 Merge branch 'contrib' into next 2025-11-11 23:59:56 +01:00
Christian Hesse
4ec1833ef8 contrib: introduce Makefile...
... and update references in links.
2025-11-11 23:59:56 +01:00
Christian Hesse
2e808141b8 contrib/logo-color: place screenshots below each other...
... not side by side.
2025-11-11 23:59:56 +01:00
Christian Hesse
06d1bab537 contrib/logo-color: use relative reference in link
... without extra path elements.

This may break, depending on site.
2025-11-11 23:59:56 +01:00
Christian Hesse
954c8e299f doc/mod/notification-telegram: use relative reference in link
This may break, depending on site.
2025-11-11 23:59:56 +01:00
Christian Hesse
a7de16b584 contrib/notification: format the values italic 2025-11-11 23:59:56 +01:00
Christian Hesse
4b5333d971 contrib/notification: update date format 2025-11-11 23:59:56 +01:00
Christian Hesse
ee6c66327a contrib/{logo-color,notification}: add navigation structure 2025-11-11 23:59:56 +01:00
Christian Hesse
0a37b6c008 contrib/*: unify html code 2025-11-11 23:59:56 +01:00
Christian Hesse
668f29776b contrib/html.sh: drop comma & ampersand from id/anchor 2025-11-11 23:01:34 +01:00
Christian Hesse
c0e8ee8c9b contrib/html.sh: properly handle anchors 2025-11-11 23:01:34 +01:00
Christian Hesse
1b914274fd contrib/html.sh: link the logo with relative path 2025-11-11 23:01:34 +01:00
Christian Hesse
98343cf8fb contrib/html.sh: increase default line height 2025-11-11 23:01:34 +01:00
Christian Hesse
2aad3add26 contrib/html.sh: add a margin on left and right...
... for windows in landscape (wider than high). Also make the
notification float right for landscape only.
2025-11-11 23:01:34 +01:00
Christian Hesse
60a1b98866 contrib/html.sh: include stylesheet via link 2025-11-11 23:01:34 +01:00
Christian Hesse
7560020aff contrib/{logo-color,notification}: use a single style 2025-11-11 23:01:34 +01:00
Christian Hesse
ee06798d8b global-functions: $CertificateDownload: drop unused function 2025-11-10 12:16:22 +01:00
Christian Hesse
3776a028f8 check-certificates: add missing semicolon 2025-11-10 12:15:08 +01:00
Christian Hesse
c88953e44d README: fix typo
We had it there since 39d1027d697c09ec709a1b847a185ccff3b00540... 😜
2025-11-07 22:11:25 +01:00
Christian Hesse
20987221d9 mod/notification-email: ignore errors (for now...)
Errors are returned since RouterOS 7.21beta2.

We keep the current logic for now, as we want to support older
RouterOS versions. This is something to be reworked later...
2025-10-26 19:19:13 +01:00
Christian Hesse
ea4b5553c2 Merge branch 'netmask6' into next
This branch is a follow-up on 9ceed0926a
with clean solution. Read on for details...

The data type `ip6-prefix` used to hold what it was named for - an IPv6
prefix:

    [user@mikrotik] > :put 2001:db8::dead:beef/32
    2001:db8::/32

This changed with RouterOS 6.21beta2, which now allows that exact same
data type to hold something like "address with prefix length attached":

    [user@mikrotik] > :put 2001:db8::dead:beef/32
    2001:db8::dead:beef/32

My scripts (namely `fw-addr-lists`) relied on the old behaviour and broke.
The commit mentioned above was just a quick workaround, with rough edges,
and it could still fail.

Sadly RouterOS does not support bit shifting on IPv6 data types, so a
(completely) mathematical solution is out of scope.

This branch implements a new and better workaround, see the first commit
of branch (6ad6f9aa08) for details.

I opened a support ticket / feature request on this topic, let's see
what results it brings...

https://help.mikrotik.com/servicedesk/servicedesk/customer/portal/1/SUP-201881
2025-10-22 19:05:38 +02:00
Christian Hesse
b80b872e55 mod/ipcalc: support IPv6
Well, some of these values do not make a lot of sense for IPv6...
Something to be cleaned up later.
2025-10-19 19:55:12 +02:00
Christian Hesse
ea05b69f7c fw-addr-lists: use $NetMask6 2025-10-19 19:55:12 +02:00
Christian Hesse
d7a6eb1d00 global-functions: $NetMask6: implement simple caching
The calculation is quite complex for something that needs to be done
frequently, for example by `fw-addr-lists`. The number of possible
netmasks is limited, so let's cache the results that were calculated
already.
2025-10-19 19:52:42 +02:00
Christian Hesse
6ad6f9aa08 global-functions: introduce $NetMask6
RouterOS does not support bit shifting on IPv6 data types, so we have to
split the problem:

 * each 16 bit block is calculated separately, as number
 * the complete netmask is assembled in a loop, as string
 * the final string is casted to correct data type
2025-10-19 19:48:14 +02:00
Christian Hesse
c62f236251 Merge branch 'netmask4' into next 2025-10-19 19:26:51 +02:00
Christian Hesse
47309e5c03 fw-addr-lists: normalize IPv4 addresses 2025-10-16 15:43:43 +02:00
Christian Hesse
9fa11cb79a mod/ipcalc: use $NetMask4 2025-10-16 13:03:54 +02:00
Christian Hesse
def540c965 global-functions: introduce $NetMask4 2025-10-16 10:47:19 +02:00
Christian Hesse
025b492783 global-functions: remove trailing space 2025-10-16 10:34:09 +02:00
Christian Hesse
6630d35eea mod/notification-telegram: $FlushTelegramQueue: check for cert, again
Chances are that messages have been queued before system was fully up or
connected. Thus the certificate may be missing, and it should be checked
again for on flush.
2025-10-13 12:06:01 +02:00
Christian Hesse
c81618b571 log-forward: always use memo symbol...
... and add warning sign on top.
2025-10-09 09:22:39 +02:00
Christian Hesse
35b556f0b2 fw-addr-lists: calculate branch after post-processing...
... as branch will likely change, and we want to avoid duplicates. 😉
2025-10-08 18:43:06 +02:00
Christian Hesse
9ceed0926a fw-addr-lists: do not use IPv6 net addresses smaller /64
This should reduce the number of addresses in list by aggregating them,
and also fix addresses with host part set (like 2001:470:1:fb5::2a0/64,
which should be 2001:470:1:fb5::/64 really).

The latter caused new warnings with RouterOS 7.21beta2.
2025-10-08 18:43:06 +02:00
Christian Hesse
5ffa85f8bf mod/ssh-keys-import: handle new parameter
With RouterOS 7.21beta2 the user SSH keys "key-owner" field was
renamed to "info".

Either of both is displayed in red by syntax highlighting, but it
works anyway.
2025-10-08 18:42:26 +02:00
Christian Hesse
48d0f1f0b9 fw-addr-lists: check last character of line for JSON
This is not a proof, but a line also ending with a curly bracket
has higher probability of being valid JSON.

Better safe than sorry... We are suffering a CVE in RouterOS:
https://www.cve.org/CVERecord?id=CVE-2025-10948
2025-10-02 11:51:08 +02:00
Christian Hesse
a931cb61a0 packages-update: fix condition when checking for scheduler
This broke with commit 6b0c9ab17d2e7e3693cebf281e5300d1e4de3446...
2025-09-30 10:02:20 +02:00
Christian Hesse
14b51d96b0 generate valid HTML, including head & style 2025-09-25 10:25:20 +02:00
Miquel Bonastre
2c715096b9 mod/ssh-keys-import: $SSHKeysImportFile: fix file exists condition...
... which broke in commit 80aed200fd.
2025-09-25 10:24:07 +02:00
Christian Hesse
2773fef9d8 global-functions: $WaitForFile: try less expensive operation
Checking a specific file is less expensive operation than finding one,
especially when on hardware with huge storage and lots of files (like
RDS). We have to keep the find command in the latter loop, though.
2025-09-25 10:24:07 +02:00
Christian Hesse
6b0c9ab17d packages-update: exit early if scheduler exists 2025-09-15 13:18:30 +02:00
Christian Hesse
59dc7e6d0c Merge branch 'check-health' into next 2025-08-26 09:25:01 +02:00
Christian Hesse
22e6383e86 check-health.d/voltage: use script name for origin in notification 2025-08-25 11:11:07 +02:00
Christian Hesse
62ca30b5d3 check-health.d/temperature: use script name for origin in notification 2025-08-25 11:11:07 +02:00
Christian Hesse
907358cb85 check-health.d/state: use script name for origin in notification 2025-08-25 11:11:07 +02:00