diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2015-10-04 14:37:11 -0700 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2015-10-04 14:37:11 -0700 |
commit | 18f6bfe87f33008021be6647061436ebec19669c (patch) | |
tree | 8a43848449184b2f0a926a6bc5383a8339e7ca5a /src/core/provider | |
parent | 98de173de9d694de28aea0c94c7c150ed75fb744 (diff) |
Don't return in mc_foreach... loop
Diffstat (limited to 'src/core/provider')
-rw-r--r-- | src/core/provider/MCMailProvider.cpp | 35 | ||||
-rw-r--r-- | src/core/provider/MCMailProvidersManager.cpp | 20 |
2 files changed, 38 insertions, 17 deletions
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) |