author | alwin <alwin> | 2003-12-25 20:10:26 (UTC) |
---|---|---|
committer | alwin <alwin> | 2003-12-25 20:10:26 (UTC) |
commit | bde1302aed8a0e2506684eaae7c2d2d823de42c6 (patch) (side-by-side diff) | |
tree | 24b16fc0f0c969df001615a00ac08a8bd4acd2df | |
parent | 67d7f0b0fc79377fba216e556785f6c630c437ad (diff) | |
download | opie-bde1302aed8a0e2506684eaae7c2d2d823de42c6.zip opie-bde1302aed8a0e2506684eaae7c2d2d823de42c6.tar.gz opie-bde1302aed8a0e2506684eaae7c2d2d823de42c6.tar.bz2 |
try to resolve timeouts via NOOP statement in login
-rw-r--r-- | noncore/net/mail/imapwrapper.cpp | 5 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp index 89ec7ab..ab20249 100644 --- a/noncore/net/mail/imapwrapper.cpp +++ b/noncore/net/mail/imapwrapper.cpp @@ -24,27 +24,32 @@ void IMAPwrapper::imap_progress( size_t current, size_t maximum ) qDebug( "IMAP: %i of %i", current, maximum ); } void IMAPwrapper::login() { const char *server, *user, *pass; uint16_t port; int err = MAILIMAP_NO_ERROR; /* we are connected this moment */ /* TODO: setup a timer holding the line or if connection closed - delete the value */ if (m_imap) { + err = mailimap_noop(m_imap); + if (err!=MAILIMAP_NO_ERROR) { + logout(); + } else { mailstream_flush(m_imap->imap_stream); return; } + } server = account->getServer().latin1(); port = account->getPort().toUInt(); if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); login.show(); if ( QDialog::Accepted == login.exec() ) { // ok user = strdup( login.getUser().latin1() ); pass = strdup( login.getPassword().latin1() ); } else { // cancel qDebug( "IMAP: Login canceled" ); diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 89ec7ab..ab20249 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp @@ -24,27 +24,32 @@ void IMAPwrapper::imap_progress( size_t current, size_t maximum ) qDebug( "IMAP: %i of %i", current, maximum ); } void IMAPwrapper::login() { const char *server, *user, *pass; uint16_t port; int err = MAILIMAP_NO_ERROR; /* we are connected this moment */ /* TODO: setup a timer holding the line or if connection closed - delete the value */ if (m_imap) { + err = mailimap_noop(m_imap); + if (err!=MAILIMAP_NO_ERROR) { + logout(); + } else { mailstream_flush(m_imap->imap_stream); return; } + } server = account->getServer().latin1(); port = account->getPort().toUInt(); if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); login.show(); if ( QDialog::Accepted == login.exec() ) { // ok user = strdup( login.getUser().latin1() ); pass = strdup( login.getPassword().latin1() ); } else { // cancel qDebug( "IMAP: Login canceled" ); |