Compare commits

...

7 commits

Author SHA1 Message Date
Christian Hesse
0a97bd14d0 mode-button: set dont-require-permissions
Actually this is a fixup for the RouterOS 7.24 changes.
2026-07-27 21:43:32 +02:00
Christian Hesse
1b3fb933e3 global-functions: $ScriptInstallUpdate: match in one regular expression 2026-07-27 21:43:32 +02:00
Christian Hesse
db751235c2 global-functions: $ScriptInstallUpdate: drop the check for matching policies...
... as this started to produce false positives.
2026-07-27 21:43:32 +02:00
Christian Hesse
3fd8fd1f09 global-functions: $ScriptInstallUpdate: support setting dont-require-permissions 2026-07-27 21:43:32 +02:00
Christian Hesse
461aab48e8 global-functions: $ScriptInstallUpdate: support setting policy 2026-07-27 21:43:32 +02:00
Christian Hesse
deee37d918 update list of contributors 2026-07-27 21:38:30 +02:00
Filipe Santos
b6398422d0 netwatch-dns: fix :toarray on unset doh-cert
Co-authored-by: Christian Hesse <mail@eworm.de>
2026-07-27 21:35:12 +02:00
4 changed files with 17 additions and 13 deletions

View file

@ -20,6 +20,7 @@ for details!
* [Anatoly Bubenkov](mailto:bubenkoff@gmail.com) (@bubenkoff) * [Anatoly Bubenkov](mailto:bubenkoff@gmail.com) (@bubenkoff)
* [Ben Harris](mailto:mail@bharr.is) (@bharrisau) * [Ben Harris](mailto:mail@bharr.is) (@bharrisau)
* [Daniel Ziegenberg](mailto:daniel@ziegenberg.at) (@ziegenberg) * [Daniel Ziegenberg](mailto:daniel@ziegenberg.at) (@ziegenberg)
* [Filipe Santos](mailto:git@not.sh) (horjulf)
* [Ignacio Serrano](mailto:ignic@ignic.com) (@ignic) * [Ignacio Serrano](mailto:ignic@ignic.com) (@ignic)
* [Ilya Kulakov](mailto:kulakov.ilya@gmail.com) (@Kentzo) * [Ilya Kulakov](mailto:kulakov.ilya@gmail.com) (@Kentzo)
* [Leonardo David Monteiro](mailto:leo@cub3.xyz) (@leosfsm) * [Leonardo David Monteiro](mailto:leo@cub3.xyz) (@leosfsm)

View file

@ -1336,14 +1336,6 @@
:local ScriptInfo [ $ParseKeyValueStore ($ScriptVal->"comment") ]; :local ScriptInfo [ $ParseKeyValueStore ($ScriptVal->"comment") ];
:local SourceNew; :local SourceNew;
:foreach Scheduler in=[ /system/scheduler/find where on-event~("\\b" . $ScriptVal->"name" . "\\b") ] do={
:local SchedulerVal [ /system/scheduler/get $Scheduler ];
:if ($ScriptVal->"policy" != $SchedulerVal->"policy") do={
$LogPrint warning $0 ("Policies differ for script '" . $ScriptVal->"name" . \
"' and its scheduler '" . $SchedulerVal->"name" . "'!");
}
}
:do { :do {
:if ($ScriptInfo->"ignore" = true) do={ :if ($ScriptInfo->"ignore" = true) do={
$LogPrint debug $0 ("Ignoring script '" . $ScriptVal->"name" . "', as requested."); $LogPrint debug $0 ("Ignoring script '" . $ScriptVal->"name" . "', as requested.");
@ -1434,12 +1426,22 @@
:error false; :error false;
} }
:local ReqPolicy [ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires policy, ") ] ];
:if ([ :len ($ReqPolicy->"policy") ] > 0) do={
:set ($ScriptVal->"policy") [ :toarray delimiter=";" ($ReqPolicy->"policy") ];
$LogPrint debug $0 ("New policy for script '" . $ScriptVal->"name" . \
"': " . ($ReqPolicy->"policy"));
}
:if ([ :len ($ReqPolicy->"dont-require-permissions") ] > 0) do={
:set ($ScriptVal->"dont-require-permissions") ($ReqPolicy->"dont-require-permissions");
$LogPrint debug $0 ("Setting dont-require-permissions for script '" . $ScriptVal->"name" . "'.");
}
$LogPrint info $0 ("Updating script: " . $ScriptVal->"name"); $LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
/system/script/set owner=($ScriptVal->"name") \ /system/script/set owner=($ScriptVal->"name") policy=($ScriptVal->"policy") \
dont-require-permissions=($ScriptVal->"dont-require-permissions") \
source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script; source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
:if ($ScriptVal->"name" = "global-config" || \ :if ($ScriptVal->"name" ~ ("^(global-config|global-functions(\\.d/.+)?|mod/.+)\$")) do={
$ScriptVal->"name" = "global-functions" || \
$ScriptVal->"name" ~ ("^(global-functions\\.d|mod)/.")) do={
:set ReloadGlobal true; :set ReloadGlobal true;
} }
} on-error={ } } on-error={ }

View file

@ -5,6 +5,7 @@
# #
# requires RouterOS, version=7.21 # requires RouterOS, version=7.21
# requires device-mode, scheduler # requires device-mode, scheduler
# requires policy, dont-require-permissions
# #
# act on multiple mode and reset button presses # act on multiple mode and reset button presses
# https://rsc.eworm.de/doc/mode-button.md # https://rsc.eworm.de/doc/mode-button.md

View file

@ -103,7 +103,7 @@
} }
:foreach DohServer in=$DohServers do={ :foreach DohServer in=$DohServers do={
:foreach DohCert in=[ :toarray delimiter=":" ($DohServer->"doh-cert") ] do={ :foreach DohCert in=[ :toarray delimiter=":" [ :tostr ($DohServer->"doh-cert") ] ] do={
:if ([ :len $DohCert ] > 0) do={ :if ([ :len $DohCert ] > 0) do={
:if ([ $CertificateAvailable $DohCert "fetch" ] = false || \ :if ([ $CertificateAvailable $DohCert "fetch" ] = false || \
[ $CertificateAvailable $DohCert "dns" ] = false) do={ [ $CertificateAvailable $DohCert "dns" ] = false) do={