summaryrefslogtreecommitdiff
path: root/noncore/net/mail
authoralwin <alwin>2003-12-15 20:02:55 (UTC)
committer alwin <alwin>2003-12-15 20:02:55 (UTC)
commit0d9ef683fbd3822723e350b09d4c700316889ba6 (patch) (unidiff)
tree363fd34b200ee8afa295559830c4fb1355705cde /noncore/net/mail
parent11a72463d467225b2079f662de513d37ca8e66b2 (diff)
downloadopie-0d9ef683fbd3822723e350b09d4c700316889ba6.zip
opie-0d9ef683fbd3822723e350b09d4c700316889ba6.tar.gz
opie-0d9ef683fbd3822723e350b09d4c700316889ba6.tar.bz2
forget to check the delete flag when making message list
Diffstat (limited to 'noncore/net/mail') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp5
-rw-r--r--noncore/net/mail/pop3wrapper.cpp5
2 files changed, 8 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index b4a8f4b..a33a16b 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -54,48 +54,50 @@ RecBody POP3wrapper::parseBody( const char *message )
54 if ( result && result->msg_body && result->msg_body->bd_text ) { 54 if ( result && result->msg_body && result->msg_body->bd_text ) {
55 qDebug( "POP3: bodytext found" ); 55 qDebug( "POP3: bodytext found" );
56 // when curTok isn't set to 0 this line will fault! 'cause upper line faults! 56 // when curTok isn't set to 0 this line will fault! 'cause upper line faults!
57 body.setBodytext( QString( result->msg_body->bd_text ) ); 57 body.setBodytext( QString( result->msg_body->bd_text ) );
58 } 58 }
59 if (result) mailimf_message_free(result); 59 if (result) mailimf_message_free(result);
60 return body; 60 return body;
61} 61}
62 62
63void POP3wrapper::listMessages(const QString &, QList<RecMail> &target ) 63void POP3wrapper::listMessages(const QString &, QList<RecMail> &target )
64{ 64{
65 int err = MAILPOP3_NO_ERROR; 65 int err = MAILPOP3_NO_ERROR;
66 char * header = 0; 66 char * header = 0;
67 /* these vars are used recurcive! set it to 0!!!!!!!!!!!!!!!!! */ 67 /* these vars are used recurcive! set it to 0!!!!!!!!!!!!!!!!! */
68 size_t length = 0; 68 size_t length = 0;
69 carray * messages = 0; 69 carray * messages = 0;
70 70
71 login(); 71 login();
72 if (!m_pop3) return; 72 if (!m_pop3) return;
73 mailpop3_list( m_pop3, &messages ); 73 mailpop3_list( m_pop3, &messages );
74 74
75 for (unsigned int i = 0; i < carray_count(messages);++i) { 75 for (unsigned int i = 0; i < carray_count(messages);++i) {
76 mailpop3_msg_info *info; 76 mailpop3_msg_info *info;
77 err = mailpop3_get_msg_info(m_pop3,i+1,&info); 77 err = mailpop3_get_msg_info(m_pop3,i+1,&info);
78 if (info->msg_deleted)
79 continue;
78 err = mailpop3_header( m_pop3, info->msg_index, &header, &length ); 80 err = mailpop3_header( m_pop3, info->msg_index, &header, &length );
79 if ( err != MAILPOP3_NO_ERROR ) { 81 if ( err != MAILPOP3_NO_ERROR ) {
80 qDebug( "POP3: error retrieving header msgid: %i", info->msg_index ); 82 qDebug( "POP3: error retrieving header msgid: %i", info->msg_index );
81 free(header); 83 free(header);
82 return; 84 return;
83 } 85 }
84 RecMail *mail = parseHeader( header ); 86 RecMail *mail = parseHeader( header );
85 mail->setNumber( info->msg_index ); 87 mail->setNumber( info->msg_index );
86 mail->setWrapper(this); 88 mail->setWrapper(this);
87 mail->setMsgsize(info->msg_size); 89 mail->setMsgsize(info->msg_size);
88 target.append( mail ); 90 target.append( mail );
89 free(header); 91 free(header);
90 } 92 }
91} 93}
92 94
93RecMail *POP3wrapper::parseHeader( const char *header ) 95RecMail *POP3wrapper::parseHeader( const char *header )
94{ 96{
95 int err = MAILIMF_NO_ERROR; 97 int err = MAILIMF_NO_ERROR;
96 size_t curTok = 0; 98 size_t curTok = 0;
97 RecMail *mail = new RecMail(); 99 RecMail *mail = new RecMail();
98 mailimf_fields *fields; 100 mailimf_fields *fields;
99 mailimf_references * refs; 101 mailimf_references * refs;
100 mailimf_keywords*keys; 102 mailimf_keywords*keys;
101 QString status; 103 QString status;
@@ -296,51 +298,52 @@ void POP3wrapper::login()
296 // TODO: decide if apop or plain login should be used 298 // TODO: decide if apop or plain login should be used
297 err = mailpop3_login( m_pop3, (char *) user, (char *) pass ); 299 err = mailpop3_login( m_pop3, (char *) user, (char *) pass );
298 if ( err != MAILPOP3_NO_ERROR ) { 300 if ( err != MAILPOP3_NO_ERROR ) {
299 qDebug( "pop3: error logging in: %s", m_pop3->pop3_response ); 301 qDebug( "pop3: error logging in: %s", m_pop3->pop3_response );
300 logout(); 302 logout();
301 return; 303 return;
302 } 304 }
303 305
304 qDebug( "POP3: logged in!" ); 306 qDebug( "POP3: logged in!" );
305} 307}
306 308
307void POP3wrapper::logout() 309void POP3wrapper::logout()
308{ 310{
309 int err = MAILPOP3_NO_ERROR; 311 int err = MAILPOP3_NO_ERROR;
310 if ( m_pop3 == NULL ) return; 312 if ( m_pop3 == NULL ) return;
311 err = mailpop3_quit( m_pop3 ); 313 err = mailpop3_quit( m_pop3 );
312 mailpop3_free( m_pop3 ); 314 mailpop3_free( m_pop3 );
313 m_pop3 = NULL; 315 m_pop3 = NULL;
314} 316}
315 317
316 318
317QList<Folder>* POP3wrapper::listFolders() 319QList<Folder>* POP3wrapper::listFolders()
318{ 320{
319 /* TODO: integrate MH directories 321 /* TODO: integrate MH directories
320 but not vor version 0.1 ;) 322 but not before version 0.1 ;)
321 */ 323 */
322 QList<Folder> * folders = new QList<Folder>(); 324 QList<Folder> * folders = new QList<Folder>();
323 folders->setAutoDelete( false ); 325 folders->setAutoDelete( false );
324 Folder*inb=new Folder("INBOX"); 326 Folder*inb=new Folder("INBOX");
325 folders->append(inb); 327 folders->append(inb);
326 return folders; 328 return folders;
327} 329}
328 330
329QString POP3wrapper::fetchPart(const RecMail&,const RecPart&) 331QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
330{ 332{
331 return ""; 333 return "";
332} 334}
333 335
334void POP3wrapper::deleteMail(const RecMail&mail) 336void POP3wrapper::deleteMail(const RecMail&mail)
335{ 337{
336 login(); 338 login();
337 if (!m_pop3) return; 339 if (!m_pop3) return;
338 int err = mailpop3_dele(m_pop3,mail.getNumber()); 340 int err = mailpop3_dele(m_pop3,mail.getNumber());
339 if (err != MAILPOP3_NO_ERROR) { 341 if (err != MAILPOP3_NO_ERROR) {
340 qDebug("error deleting mail"); 342 qDebug("error deleting mail");
341 } 343 }
342} 344}
343 345
344void POP3wrapper::answeredMail(const RecMail&) 346void POP3wrapper::answeredMail(const RecMail&)
345{ 347{
346} 348}
349
diff --git a/noncore/net/mail/pop3wrapper.cpp b/noncore/net/mail/pop3wrapper.cpp
index b4a8f4b..a33a16b 100644
--- a/noncore/net/mail/pop3wrapper.cpp
+++ b/noncore/net/mail/pop3wrapper.cpp
@@ -54,48 +54,50 @@ RecBody POP3wrapper::parseBody( const char *message )
54 if ( result && result->msg_body && result->msg_body->bd_text ) { 54 if ( result && result->msg_body && result->msg_body->bd_text ) {
55 qDebug( "POP3: bodytext found" ); 55 qDebug( "POP3: bodytext found" );
56 // when curTok isn't set to 0 this line will fault! 'cause upper line faults! 56 // when curTok isn't set to 0 this line will fault! 'cause upper line faults!
57 body.setBodytext( QString( result->msg_body->bd_text ) ); 57 body.setBodytext( QString( result->msg_body->bd_text ) );
58 } 58 }
59 if (result) mailimf_message_free(result); 59 if (result) mailimf_message_free(result);
60 return body; 60 return body;
61} 61}
62 62
63void POP3wrapper::listMessages(const QString &, QList<RecMail> &target ) 63void POP3wrapper::listMessages(const QString &, QList<RecMail> &target )
64{ 64{
65 int err = MAILPOP3_NO_ERROR; 65 int err = MAILPOP3_NO_ERROR;
66 char * header = 0; 66 char * header = 0;
67 /* these vars are used recurcive! set it to 0!!!!!!!!!!!!!!!!! */ 67 /* these vars are used recurcive! set it to 0!!!!!!!!!!!!!!!!! */
68 size_t length = 0; 68 size_t length = 0;
69 carray * messages = 0; 69 carray * messages = 0;
70 70
71 login(); 71 login();
72 if (!m_pop3) return; 72 if (!m_pop3) return;
73 mailpop3_list( m_pop3, &messages ); 73 mailpop3_list( m_pop3, &messages );
74 74
75 for (unsigned int i = 0; i < carray_count(messages);++i) { 75 for (unsigned int i = 0; i < carray_count(messages);++i) {
76 mailpop3_msg_info *info; 76 mailpop3_msg_info *info;
77 err = mailpop3_get_msg_info(m_pop3,i+1,&info); 77 err = mailpop3_get_msg_info(m_pop3,i+1,&info);
78 if (info->msg_deleted)
79 continue;
78 err = mailpop3_header( m_pop3, info->msg_index, &header, &length ); 80 err = mailpop3_header( m_pop3, info->msg_index, &header, &length );
79 if ( err != MAILPOP3_NO_ERROR ) { 81 if ( err != MAILPOP3_NO_ERROR ) {
80 qDebug( "POP3: error retrieving header msgid: %i", info->msg_index ); 82 qDebug( "POP3: error retrieving header msgid: %i", info->msg_index );
81 free(header); 83 free(header);
82 return; 84 return;
83 } 85 }
84 RecMail *mail = parseHeader( header ); 86 RecMail *mail = parseHeader( header );
85 mail->setNumber( info->msg_index ); 87 mail->setNumber( info->msg_index );
86 mail->setWrapper(this); 88 mail->setWrapper(this);
87 mail->setMsgsize(info->msg_size); 89 mail->setMsgsize(info->msg_size);
88 target.append( mail ); 90 target.append( mail );
89 free(header); 91 free(header);
90 } 92 }
91} 93}
92 94
93RecMail *POP3wrapper::parseHeader( const char *header ) 95RecMail *POP3wrapper::parseHeader( const char *header )
94{ 96{
95 int err = MAILIMF_NO_ERROR; 97 int err = MAILIMF_NO_ERROR;
96 size_t curTok = 0; 98 size_t curTok = 0;
97 RecMail *mail = new RecMail(); 99 RecMail *mail = new RecMail();
98 mailimf_fields *fields; 100 mailimf_fields *fields;
99 mailimf_references * refs; 101 mailimf_references * refs;
100 mailimf_keywords*keys; 102 mailimf_keywords*keys;
101 QString status; 103 QString status;
@@ -296,51 +298,52 @@ void POP3wrapper::login()
296 // TODO: decide if apop or plain login should be used 298 // TODO: decide if apop or plain login should be used
297 err = mailpop3_login( m_pop3, (char *) user, (char *) pass ); 299 err = mailpop3_login( m_pop3, (char *) user, (char *) pass );
298 if ( err != MAILPOP3_NO_ERROR ) { 300 if ( err != MAILPOP3_NO_ERROR ) {
299 qDebug( "pop3: error logging in: %s", m_pop3->pop3_response ); 301 qDebug( "pop3: error logging in: %s", m_pop3->pop3_response );
300 logout(); 302 logout();
301 return; 303 return;
302 } 304 }
303 305
304 qDebug( "POP3: logged in!" ); 306 qDebug( "POP3: logged in!" );
305} 307}
306 308
307void POP3wrapper::logout() 309void POP3wrapper::logout()
308{ 310{
309 int err = MAILPOP3_NO_ERROR; 311 int err = MAILPOP3_NO_ERROR;
310 if ( m_pop3 == NULL ) return; 312 if ( m_pop3 == NULL ) return;
311 err = mailpop3_quit( m_pop3 ); 313 err = mailpop3_quit( m_pop3 );
312 mailpop3_free( m_pop3 ); 314 mailpop3_free( m_pop3 );
313 m_pop3 = NULL; 315 m_pop3 = NULL;
314} 316}
315 317
316 318
317QList<Folder>* POP3wrapper::listFolders() 319QList<Folder>* POP3wrapper::listFolders()
318{ 320{
319 /* TODO: integrate MH directories 321 /* TODO: integrate MH directories
320 but not vor version 0.1 ;) 322 but not before version 0.1 ;)
321 */ 323 */
322 QList<Folder> * folders = new QList<Folder>(); 324 QList<Folder> * folders = new QList<Folder>();
323 folders->setAutoDelete( false ); 325 folders->setAutoDelete( false );
324 Folder*inb=new Folder("INBOX"); 326 Folder*inb=new Folder("INBOX");
325 folders->append(inb); 327 folders->append(inb);
326 return folders; 328 return folders;
327} 329}
328 330
329QString POP3wrapper::fetchPart(const RecMail&,const RecPart&) 331QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
330{ 332{
331 return ""; 333 return "";
332} 334}
333 335
334void POP3wrapper::deleteMail(const RecMail&mail) 336void POP3wrapper::deleteMail(const RecMail&mail)
335{ 337{
336 login(); 338 login();
337 if (!m_pop3) return; 339 if (!m_pop3) return;
338 int err = mailpop3_dele(m_pop3,mail.getNumber()); 340 int err = mailpop3_dele(m_pop3,mail.getNumber());
339 if (err != MAILPOP3_NO_ERROR) { 341 if (err != MAILPOP3_NO_ERROR) {
340 qDebug("error deleting mail"); 342 qDebug("error deleting mail");
341 } 343 }
342} 344}
343 345
344void POP3wrapper::answeredMail(const RecMail&) 346void POP3wrapper::answeredMail(const RecMail&)
345{ 347{
346} 348}
349