From 787f3a0cbd284cb2ed8401aa5d4d32e629454cdc Mon Sep 17 00:00:00 2001 From: djmaze Date: Mon, 26 Apr 2021 12:20:31 +0200 Subject: [PATCH] Improved requestSleep() --- .../v/0.0.0/app/libraries/RainLoop/Actions.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php index b858acb5a..373221056 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -1304,20 +1304,19 @@ class Actions return $aResult; } - private function requestSleep(int $iWait = 1, int $iDelay = 1): void + protected function requestSleep(int $iDelay = 1): void { - if (0 < $iDelay && 0 < $iWait) { - if ($iWait > \time() - $_SERVER['REQUEST_TIME_FLOAT']) { - \sleep($iDelay); - } + $time = \microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']; + if ($iDelay > $time) { + \usleep(($iDelay - $time) * 1000000); } } - private function loginErrorDelay(): void + protected function loginErrorDelay(): void { $iDelay = (int)$this->Config()->Get('labs', 'login_fault_delay', 0); if (0 < $iDelay) { - $this->requestSleep(1, $iDelay); + $this->requestSleep($iDelay); } }