Diffstat (limited to 'noncore/net/mail/libmailwrapper/pop3wrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/pop3wrapper.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp index 22a4c70..b0b985c 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp | |||
@@ -1,15 +1,16 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include "pop3wrapper.h" | 2 | #include "pop3wrapper.h" |
3 | #include "mailtypes.h" | 3 | #include "mailtypes.h" |
4 | #include "logindialog.h" | ||
4 | #include <libetpan/mailpop3.h> | 5 | #include <libetpan/mailpop3.h> |
5 | #include <libetpan/mailmime.h> | 6 | #include <libetpan/mailmime.h> |
6 | #include <libetpan/data_message_driver.h> | 7 | #include <libetpan/data_message_driver.h> |
7 | #include <qfile.h> | 8 | #include <qfile.h> |
8 | 9 | ||
9 | /* we don't fetch messages larger than 5 MB */ | 10 | /* we don't fetch messages larger than 5 MB */ |
10 | #define HARD_MSG_SIZE_LIMIT 5242880 | 11 | #define HARD_MSG_SIZE_LIMIT 5242880 |
11 | 12 | ||
12 | POP3wrapper::POP3wrapper( POP3account *a ) | 13 | POP3wrapper::POP3wrapper( POP3account *a ) |
13 | { | 14 | { |
14 | account = a; | 15 | account = a; |
15 | m_pop3 = NULL; | 16 | m_pop3 = NULL; |
@@ -348,26 +349,41 @@ QString POP3wrapper::parseMailboxList( mailimf_mailbox_list *list ) | |||
348 | 349 | ||
349 | void POP3wrapper::login() | 350 | void POP3wrapper::login() |
350 | { | 351 | { |
351 | /* we'll hold the line */ | 352 | /* we'll hold the line */ |
352 | if ( m_pop3 != NULL ) return; | 353 | if ( m_pop3 != NULL ) return; |
353 | 354 | ||
354 | const char *server, *user, *pass; | 355 | const char *server, *user, *pass; |
355 | uint16_t port; | 356 | uint16_t port; |
356 | int err = MAILPOP3_NO_ERROR; | 357 | int err = MAILPOP3_NO_ERROR; |
357 | 358 | ||
358 | server = account->getServer().latin1(); | 359 | server = account->getServer().latin1(); |
359 | port = account->getPort().toUInt(); | 360 | port = account->getPort().toUInt(); |
360 | user = account->getUser().latin1(); | 361 | |
361 | pass = account->getPassword().latin1(); | 362 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
363 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); | ||
364 | login.show(); | ||
365 | if ( QDialog::Accepted == login.exec() ) { | ||
366 | // ok | ||
367 | user = strdup( login.getUser().latin1() ); | ||
368 | pass = strdup( login.getPassword().latin1() ); | ||
369 | } else { | ||
370 | // cancel | ||
371 | qDebug( "POP3: Login canceled" ); | ||
372 | return; | ||
373 | } | ||
374 | } else { | ||
375 | user = account->getUser().latin1(); | ||
376 | pass = account->getPassword().latin1(); | ||
377 | } | ||
362 | 378 | ||
363 | m_pop3 = mailpop3_new( 200, &pop3_progress ); | 379 | m_pop3 = mailpop3_new( 200, &pop3_progress ); |
364 | 380 | ||
365 | // connect | 381 | // connect |
366 | if (account->getSSL()) { | 382 | if (account->getSSL()) { |
367 | err = mailpop3_ssl_connect( m_pop3, (char*)server, port ); | 383 | err = mailpop3_ssl_connect( m_pop3, (char*)server, port ); |
368 | } else { | 384 | } else { |
369 | err = mailpop3_socket_connect( m_pop3, (char*)server, port ); | 385 | err = mailpop3_socket_connect( m_pop3, (char*)server, port ); |
370 | } | 386 | } |
371 | 387 | ||
372 | if ( err != MAILPOP3_NO_ERROR ) { | 388 | if ( err != MAILPOP3_NO_ERROR ) { |
373 | qDebug( "pop3: error connecting to %s\n reason: %s", server, | 389 | qDebug( "pop3: error connecting to %s\n reason: %s", server, |