diff options
author | David Llewellyn-Jones <david.llewellyn-jones@jolla.com> | 2020-01-17 18:41:44 +0200 |
---|---|---|
committer | Chris Adams <chris.adams@qinetic.com.au> | 2021-04-09 13:35:29 +1000 |
commit | 4ae3201bf07473bf3746b8faf56744055fceffa7 (patch) | |
tree | 243777833eacaf0a515acd3fb6af92e02fbdfd81 | |
parent | 89de2cb8c12511c707f13ef47e14b6f564aaa001 (diff) |
Check if IDLE connection needs to be established after login
Some servers only advertise full capabilities after sucessful login,
so we need to check if IDLE connection needs to be established in such
cases.
Created by Valério Valério <valerio.valerio@jolla.com>, 11 May 2015.
Change-Id: I307f7be0e07b1639c80f01a3205bcff9de96525a
Reviewed-by: Christopher Adams <chris.adams@jolla.com>
-rw-r--r-- | src/plugins/messageservices/imap/imapclient.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp index 5154234c..a4100fb7 100644 --- a/src/plugins/messageservices/imap/imapclient.cpp +++ b/src/plugins/messageservices/imap/imapclient.cpp @@ -682,6 +682,16 @@ void ImapClient::commandTransition(ImapCommand command, OperationStatus status) qWarning() << "Unable to update account" << account.id() << "to set imap4 configuration"; } } + // After logging in server capabilities reported may change so we need to + // check if IDLE is already established, when enabled + if (!_waitingForIdle && !_idlesEstablished + && _protocol.supportsCapability("IDLE") + && !_waitingForIdleFolderIds.isEmpty() + && _pushConnectionsReserved) { + _waitingForIdle = true; + monitor(_waitingForIdleFolderIds); + emit updateStatus( tr("Logging in idle connection" ) ); + } bool compressCapable(_protocol.capabilities().contains("COMPRESS=DEFLATE", Qt::CaseInsensitive)); if (!_protocol.encrypted() && QMFALLOWCOMPRESS && compressCapable && !_protocol.compress()) { |