diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/async/pop/MCPOPDeleteMessagesOperation.cpp | 14 | ||||
-rw-r--r-- | src/core/provider/MCMailProvider.cpp | 35 | ||||
-rw-r--r-- | src/core/provider/MCMailProvidersManager.cpp | 20 |
3 files changed, 39 insertions, 30 deletions
diff --git a/src/async/pop/MCPOPDeleteMessagesOperation.cpp b/src/async/pop/MCPOPDeleteMessagesOperation.cpp index 40cf11f6..b57a60fa 100644 --- a/src/async/pop/MCPOPDeleteMessagesOperation.cpp +++ b/src/async/pop/MCPOPDeleteMessagesOperation.cpp @@ -39,23 +39,11 @@ void POPDeleteMessagesOperation::main() return; ErrorCode error; -#if 0 - for(unsigned int i = 0 ; i < mMessageIndexes->rangesCount() ; i ++) { - Range range = mMessageIndexes->allRanges()[i]; - for(unsigned int k = 0 ; k <= range.length ; k ++) { - session()->session()->deleteMessage((unsigned int) (range.location + k), &error); - if (error != ErrorNone) { - setError(error); - return; - } - } - } -#endif mc_foreachindexset(index, mMessageIndexes) { session()->session()->deleteMessage((unsigned int) index, &error); if (error != ErrorNone) { setError(error); - return; + break; } } session()->session()->disconnect(); diff --git a/src/core/provider/MCMailProvider.cpp b/src/core/provider/MCMailProvider.cpp index 1055d4fa..99fc4deb 100644 --- a/src/core/provider/MCMailProvider.cpp +++ b/src/core/provider/MCMailProvider.cpp @@ -161,30 +161,42 @@ bool MailProvider::matchEmail(String * email) domain = (String *) components->lastObject(); + bool matchExcludeDomain = false; mc_foreacharray(String, exclude, mDomainExclude) { if (matchDomain(exclude, domain)){ - return false; + matchExcludeDomain = true;; + break; } } - + if (matchExcludeDomain) { + return false; + } + + bool matchValidDomain = false; mc_foreacharray(String, match, mDomainMatch) { if (matchDomain(match, domain)){ - return true; + matchValidDomain = true; + break; } } - + if (matchValidDomain) { + return true; + } + return false; } bool MailProvider::matchMX(String * hostname) { + bool result = false; mc_foreacharray(String, match, mMxMatch) { if (matchDomain(match, hostname)){ - return true; + result = true; + break; } } - - return false; + + return result; } bool MailProvider::matchDomain(String * match, String * domain) @@ -272,6 +284,7 @@ String * MailProvider::importantFolderPath() bool MailProvider::isMainFolder(String * folderPath, String * prefix) { + bool result = false; mc_foreachhashmapValue(String, path, mMailboxPaths) { String * fullPath; @@ -282,11 +295,13 @@ bool MailProvider::isMainFolder(String * folderPath, String * prefix) fullPath = path; } - if (fullPath->isEqual(folderPath)) - return true; + if (fullPath->isEqual(folderPath)) { + result = true; + break; + } } - return false; + return result; } String * MailProvider::description() diff --git a/src/core/provider/MCMailProvidersManager.cpp b/src/core/provider/MCMailProvidersManager.cpp index 0d7938e4..a5f7891a 100644 --- a/src/core/provider/MCMailProvidersManager.cpp +++ b/src/core/provider/MCMailProvidersManager.cpp @@ -30,22 +30,28 @@ MailProvidersManager * MailProvidersManager::sharedManager() MailProvider * MailProvidersManager::providerForEmail(String * email) { + MailProvider * result = NULL; mc_foreachhashmapValue(MailProvider, provider, mProviders) { - if (provider->matchEmail(email)) - return provider; + if (provider->matchEmail(email)) { + result = provider; + break; + } } - return NULL; + return result; } MailProvider * MailProvidersManager::providerForMX(String * hostname) { + MailProvider * result = NULL; mc_foreachhashmapValue(MailProvider, provider, mProviders) { - if (provider->matchMX(hostname)) - return provider; + if (provider->matchMX(hostname)) { + result = provider; + break; + } } - - return NULL; + + return result; } MailProvider * MailProvidersManager::providerForIdentifier(String * identifier) |