aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-05-22 18:32:28 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-05-22 18:32:28 -0700
commitc25fa58728113165cc39007ec5289d83b1cd33a7 (patch)
tree11d2fdf3af142a24e706357a499c2734baa52353
parent51f6a1cd4738b462559685d179ce59c77a1673a6 (diff)
Fixed crash when connection fails
-rw-r--r--src/core/imap/MCIMAPSession.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc
index 2b5fec8e..d860d85c 100644
--- a/src/core/imap/MCIMAPSession.cc
+++ b/src/core/imap/MCIMAPSession.cc
@@ -524,12 +524,14 @@ void IMAPSession::connect(ErrorCode * pError)
MCLog("STARTTLS connect");
r = mailimap_socket_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
if (hasError(r)) {
+ unsetup();
* pError = ErrorConnection;
return;
}
r = mailimap_socket_starttls(mImap);
if (hasError(r)) {
+ unsetup();
MCLog("no TLS %i", r);
* pError = ErrorTLSNotAvailable;
return;
@@ -540,11 +542,13 @@ void IMAPSession::connect(ErrorCode * pError)
r = mailimap_ssl_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
MCLog("ssl connect %s %u %u", MCUTF8(mHostname), mPort, r);
if (hasError(r)) {
+ unsetup();
MCLog("connect error %i", r);
* pError = ErrorConnection;
return;
}
if (!checkCertificate()) {
+ unsetup();
MCLog("ssl connect certificate ERROR %d", r);
* pError = ErrorCertificate;
return;
@@ -557,6 +561,7 @@ void IMAPSession::connect(ErrorCode * pError)
r = mailimap_socket_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
MCLog("socket connect %i", r);
if (hasError(r)) {
+ unsetup();
MCLog("connect error %i", r);
* pError = ErrorConnection;
return;