author | alwin <alwin> | 2004-10-27 00:20:35 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-10-27 00:20:35 (UTC) |
commit | e44d35ca3fd26ef7a3184b07516f6535d8844a83 (patch) (side-by-side diff) | |
tree | 4c4ac98450106bb9b05ca76bf5f29e2b6d4fc58b | |
parent | ae5855babec6e46802be89ee408d26a2cbbb1981 (diff) | |
download | opie-e44d35ca3fd26ef7a3184b07516f6535d8844a83.zip opie-e44d35ca3fd26ef7a3184b07516f6535d8844a83.tar.gz opie-e44d35ca3fd26ef7a3184b07516f6535d8844a83.tar.bz2 |
fixed a bug within tls support
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 8e5212b..576804d 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp @@ -60,35 +60,37 @@ bool IMAPwrapper::start_tls(bool force_tls) clistiter * cur; for(cur = clist_begin(cap_data->cap_list) ; cur != NULL;cur = clist_next(cur)) { struct mailimap_capability * cap; cap = (struct mailimap_capability *)clist_content(cur); if (cap->cap_type == MAILIMAP_CAPABILITY_NAME) { if (strcasecmp(cap->cap_data.cap_name, "STARTTLS") == 0) { try_tls = true; break; } } } if (cap_data) { mailimap_capability_data_free(cap_data); } if (try_tls) { err = mailimap_starttls(m_imap); - if (err != MAILIMAP_NO_ERROR && force_tls) { + if (err != MAILIMAP_NO_ERROR) { + if (force_tls) { Global::statusMessage(tr("Server has no TLS support!")); odebug << "Server has no TLS support!" << oendl; + } try_tls = false; } else { mailstream_low * low; mailstream_low * new_low; low = mailstream_get_low(m_imap->imap_stream); if (!low) { try_tls = false; } else { int fd = mailstream_low_get_fd(low); if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { mailstream_low_free(low); mailstream_set_low(m_imap->imap_stream, new_low); } else { try_tls = false; } } @@ -172,33 +174,33 @@ void IMAPwrapper::login() if (!ssl) { try_tls = start_tls(force_tls); } bool ok = true; if (force_tls && !try_tls) { Global::statusMessage(tr("Server has no TLS support!")); odebug << "Server has no TLS support!" << oendl; ok = false; } /* login */ if (ok) { - err = mailimap_login_simple( m_imap, (char*)user, (char*)pass ); + err = mailimap_login( m_imap, (char*)user, (char*)pass ); if ( err != MAILIMAP_NO_ERROR ) { Global::statusMessage(tr("error logging in imap server: %1").arg(m_imap->imap_response)); ok = false; } } if (!ok) { err = mailimap_close( m_imap ); mailimap_free( m_imap ); m_imap = 0; } } void IMAPwrapper::logout() { int err = MAILIMAP_NO_ERROR; if (!m_imap) return; |