-rw-r--r-- | noncore/net/mail/imapwrapper.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/pop3wrapper.cpp | 20 | ||||
-rw-r--r-- | noncore/net/mail/pop3wrapper.cpp | 20 |
4 files changed, 70 insertions, 8 deletions
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp index 838300a..cce3d34 100644 --- a/noncore/net/mail/imapwrapper.cpp +++ b/noncore/net/mail/imapwrapper.cpp | |||
@@ -1,13 +1,14 @@ | |||
1 | 1 | ||
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | 3 | ||
4 | #include "imapwrapper.h" | 4 | #include "imapwrapper.h" |
5 | #include "mailtypes.h" | 5 | #include "mailtypes.h" |
6 | #include "logindialog.h" | ||
6 | #include <libetpan/mailimap.h> | 7 | #include <libetpan/mailimap.h> |
7 | 8 | ||
8 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) | 9 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) |
9 | : AbstractMail() | 10 | : AbstractMail() |
10 | { | 11 | { |
11 | account = a; | 12 | account = a; |
12 | m_imap = 0; | 13 | m_imap = 0; |
13 | } | 14 | } |
@@ -31,18 +32,32 @@ void IMAPwrapper::login() | |||
31 | /* we are connected this moment */ | 32 | /* we are connected this moment */ |
32 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ | 33 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ |
33 | if (m_imap) { | 34 | if (m_imap) { |
34 | mailstream_flush(m_imap->imap_stream); | 35 | mailstream_flush(m_imap->imap_stream); |
35 | return; | 36 | return; |
36 | } | 37 | } |
37 | server = account->getServer().latin1(); | 38 | server = account->getServer().latin1(); |
38 | port = account->getPort().toUInt(); | 39 | port = account->getPort().toUInt(); |
39 | user = account->getUser().latin1(); | 40 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
40 | pass = account->getPassword().latin1(); | 41 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
42 | login.show(); | ||
43 | if ( QDialog::Accepted == login.exec() ) { | ||
44 | // ok | ||
45 | user = strdup( login.getUser().latin1() ); | ||
46 | pass = strdup( login.getPassword().latin1() ); | ||
47 | } else { | ||
48 | // cancel | ||
49 | qDebug( "IMAP: Login canceled" ); | ||
50 | return; | ||
51 | } | ||
52 | } else { | ||
53 | user = account->getUser().latin1(); | ||
54 | pass = account->getPassword().latin1(); | ||
55 | } | ||
41 | 56 | ||
42 | m_imap = mailimap_new( 20, &imap_progress ); | 57 | m_imap = mailimap_new( 20, &imap_progress ); |
43 | /* connect */ | 58 | /* connect */ |
44 | if (account->getSSL()) { | 59 | if (account->getSSL()) { |
45 | err = mailimap_ssl_connect( m_imap, (char*)server, port ); | 60 | err = mailimap_ssl_connect( m_imap, (char*)server, port ); |
46 | } else { | 61 | } else { |
47 | err = mailimap_socket_connect( m_imap, (char*)server, port ); | 62 | err = mailimap_socket_connect( m_imap, (char*)server, port ); |
48 | } | 63 | } |
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 838300a..cce3d34 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp | |||
@@ -1,13 +1,14 @@ | |||
1 | 1 | ||
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | 3 | ||
4 | #include "imapwrapper.h" | 4 | #include "imapwrapper.h" |
5 | #include "mailtypes.h" | 5 | #include "mailtypes.h" |
6 | #include "logindialog.h" | ||
6 | #include <libetpan/mailimap.h> | 7 | #include <libetpan/mailimap.h> |
7 | 8 | ||
8 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) | 9 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) |
9 | : AbstractMail() | 10 | : AbstractMail() |
10 | { | 11 | { |
11 | account = a; | 12 | account = a; |
12 | m_imap = 0; | 13 | m_imap = 0; |
13 | } | 14 | } |
@@ -31,18 +32,32 @@ void IMAPwrapper::login() | |||
31 | /* we are connected this moment */ | 32 | /* we are connected this moment */ |
32 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ | 33 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ |
33 | if (m_imap) { | 34 | if (m_imap) { |
34 | mailstream_flush(m_imap->imap_stream); | 35 | mailstream_flush(m_imap->imap_stream); |
35 | return; | 36 | return; |
36 | } | 37 | } |
37 | server = account->getServer().latin1(); | 38 | server = account->getServer().latin1(); |
38 | port = account->getPort().toUInt(); | 39 | port = account->getPort().toUInt(); |
39 | user = account->getUser().latin1(); | 40 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
40 | pass = account->getPassword().latin1(); | 41 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
42 | login.show(); | ||
43 | if ( QDialog::Accepted == login.exec() ) { | ||
44 | // ok | ||
45 | user = strdup( login.getUser().latin1() ); | ||
46 | pass = strdup( login.getPassword().latin1() ); | ||
47 | } else { | ||
48 | // cancel | ||
49 | qDebug( "IMAP: Login canceled" ); | ||
50 | return; | ||
51 | } | ||
52 | } else { | ||
53 | user = account->getUser().latin1(); | ||
54 | pass = account->getPassword().latin1(); | ||
55 | } | ||
41 | 56 | ||
42 | m_imap = mailimap_new( 20, &imap_progress ); | 57 | m_imap = mailimap_new( 20, &imap_progress ); |
43 | /* connect */ | 58 | /* connect */ |
44 | if (account->getSSL()) { | 59 | if (account->getSSL()) { |
45 | err = mailimap_ssl_connect( m_imap, (char*)server, port ); | 60 | err = mailimap_ssl_connect( m_imap, (char*)server, port ); |
46 | } else { | 61 | } else { |
47 | err = mailimap_socket_connect( m_imap, (char*)server, port ); | 62 | err = mailimap_socket_connect( m_imap, (char*)server, port ); |
48 | } | 63 | } |
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,11 +1,12 @@ | |||
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 | ||
@@ -352,18 +353,33 @@ void POP3wrapper::login() | |||
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 ); |
diff --git a/noncore/net/mail/pop3wrapper.cpp b/noncore/net/mail/pop3wrapper.cpp index 22a4c70..b0b985c 100644 --- a/noncore/net/mail/pop3wrapper.cpp +++ b/noncore/net/mail/pop3wrapper.cpp | |||
@@ -1,11 +1,12 @@ | |||
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 | ||
@@ -352,18 +353,33 @@ void POP3wrapper::login() | |||
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 ); |