diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2013-05-22 18:32:28 -0700 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2013-05-22 18:32:28 -0700 |
commit | c25fa58728113165cc39007ec5289d83b1cd33a7 (patch) | |
tree | 11d2fdf3af142a24e706357a499c2734baa52353 | |
parent | 51f6a1cd4738b462559685d179ce59c77a1673a6 (diff) |
Fixed crash when connection fails
-rw-r--r-- | src/core/imap/MCIMAPSession.cc | 5 |
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; |