aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2025-06-22 00:35:34 +0200
committerGravatar Christian Hesse <mail@eworm.de>2025-06-23 08:52:58 +0200
commitc3010af4ed18e750b5942d810e6da14d49135c59 (patch)
treef9d007deb5e8e4507e678595ff9661f1cc9f50c6
parent95f8af6234ab56c9a831d0f37f338d7b8b3e0cbe (diff)
parent1307b8587e57deaf95146820b7f32bb9a713892d (diff)
Merge branch 'file' into nextHEADrouteros-7.20beta4-1nextmain
-rw-r--r--global-functions.rsc26
1 files changed, 22 insertions, 4 deletions
diff --git a/global-functions.rsc b/global-functions.rsc
index 50426b6..829cbf2 100644
--- a/global-functions.rsc
+++ b/global-functions.rsc
@@ -559,6 +559,12 @@
:set FileGet do={
:local FileName [ :tostr $1 ];
+ :global WaitForFile;
+
+ :if ([ $WaitForFile $FileName 0s ] = false) do={
+ :return false;
+ }
+
:local FileVal false;
:do {
:set FileVal [ /file/get $FileName ];
@@ -1771,14 +1777,26 @@
:global MAX;
:set FileName [ $CleanFilePath $FileName ];
- :local Delay ([ $MAX [ $EitherOr $WaitTime 2s ] 100ms ] / 10);
+ :local Delay ([ $MAX [ $EitherOr $WaitTime 2s ] 100ms ] / 9);
:do {
- :retry {
+ :retry {
+ :if ([ :len [ /file/find where name=$FileName ] ] = 0) do={
+ :error false;
+ }
+ } delay=$Delay max=10;
+ } on-error={
+ :return false;
+ }
+
+ :while ([ :len [ /file/find where name=$FileName ] ] > 0) do={
+ :do {
/file/get $FileName;
:return true;
- } delay=$Delay max=10;
- } on-error={ }
+ } on-error={ }
+ :delay $Delay;
+ :set Delay ($Delay * 3 / 2);
+ }
:return false;
}