From 402de0d569eed70b10b871082713454b89244e01 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 7 Mar 2023 11:41:47 +0100 Subject: [PATCH] Bugfix: ETag should use account not ImapClient as switching accounts could generate same hash --- snappymail/v/0.0.0/app/libraries/MailSo/Imap/Folder.php | 2 +- .../v/0.0.0/app/libraries/RainLoop/Actions/Messages.php | 4 ++-- .../v/0.0.0/app/libraries/RainLoop/Actions/Response.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Folder.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Folder.php index bb109d58e..97a40e27c 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Folder.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Folder.php @@ -163,7 +163,7 @@ class Folder implements \JsonSerializable 'totalEmails' => (int) $this->MESSAGES, 'unreadEmails' => (int) $this->UNSEEN, 'uidNext' => (int) $this->UIDNEXT, -// 'etag' => $this->ETag($this->ImapClient()->Hash()) +// 'etag' => $this->ETag($this->getAccountFromToken()->IncLogin()) ); } */ diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php index cfa879860..fe6a4eb63 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php @@ -65,7 +65,7 @@ trait Messages // $oInfo = $this->MailClient()->FolderHash($oParams->sFolderName); $oInfo = $this->ImapClient()->FolderStatusAndSelect($oParams->sFolderName); $aRequestHash = \explode('-', $sHash); - $sFolderHash = $oInfo->getETag($this->ImapClient()->Hash()); + $sFolderHash = $oInfo->getETag($this->getAccountFromToken()->IncLogin()); $sHash = $oParams->hash() . '-' . $sFolderHash; if ($aRequestHash[1] == $sFolderHash) { $this->verifyCacheByKey($sHash); @@ -429,7 +429,7 @@ trait Messages } if ($oMessage) { - $ETag = $oMessage->ETag($this->ImapClient()->Hash()); + $ETag = $oMessage->ETag($this->getAccountFromToken()->IncLogin()); $this->verifyCacheByKey($ETag); $this->Plugins()->RunHook('filter.result-message', array($oMessage)); $this->cacheByKey($ETag); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Response.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Response.php index 4153e25c3..7e8a3752e 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Response.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Response.php @@ -155,7 +155,7 @@ trait Response if ($mResponse instanceof \MailSo\Imap\Folder) { $aResult = $mResponse->jsonSerialize(); - $sHash = $mResponse->ETag($this->ImapClient()->Hash()); + $sHash = $mResponse->ETag($this->getAccountFromToken()->IncLogin()); if ($sHash) { $aResult['etag'] = $sHash; }