aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/provider
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-10-04 14:37:11 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-10-04 14:37:11 -0700
commit18f6bfe87f33008021be6647061436ebec19669c (patch)
tree8a43848449184b2f0a926a6bc5383a8339e7ca5a /src/core/provider
parent98de173de9d694de28aea0c94c7c150ed75fb744 (diff)
Don't return in mc_foreach... loop
Diffstat (limited to 'src/core/provider')
-rw-r--r--src/core/provider/MCMailProvider.cpp35
-rw-r--r--src/core/provider/MCMailProvidersManager.cpp20
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)