summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
authoralwin <alwin>2003-12-10 20:33:31 (UTC)
committer alwin <alwin>2003-12-10 20:33:31 (UTC)
commit7dc6ff83f138c78b6bd5e8a4d922a6e60c533a1f (patch) (unidiff)
treec3f53894691dd71cbdf05e69603f7ac55ea2474c /noncore/net/mail/libmailwrapper/pop3wrapper.cpp
parent66aa51039689ab2dab153469d7f6527bcedd9318 (diff)
downloadopie-7dc6ff83f138c78b6bd5e8a4d922a6e60c533a1f.zip
opie-7dc6ff83f138c78b6bd5e8a4d922a6e60c533a1f.tar.gz
opie-7dc6ff83f138c78b6bd5e8a4d922a6e60c533a1f.tar.bz2
changes to work with libetpan 0.3.1
Diffstat (limited to 'noncore/net/mail/libmailwrapper/pop3wrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index 72f3c36..633faf6 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -30,20 +30,20 @@ void POP3wrapper::listMessages( QList<RecMail> &target )
30 if (!m_pop3) return; 30 if (!m_pop3) return;
31 mailpop3_list( m_pop3, &messages ); 31 mailpop3_list( m_pop3, &messages );
32 32
33 for ( int i = carray_count( messages ); i > 0; i-- ) { 33 for ( int i = carray_count( messages ); i > 0; i-- ) {
34 mailpop3_msg_info *info = (mailpop3_msg_info *) carray_get( messages, i - 1 ); 34 mailpop3_msg_info *info = (mailpop3_msg_info *) carray_get( messages, i - 1 );
35 35
36 err = mailpop3_header( m_pop3, info->index, &header, &length ); 36 err = mailpop3_header( m_pop3, info->msg_index, &header, &length );
37 if ( err != MAILPOP3_NO_ERROR ) { 37 if ( err != MAILPOP3_NO_ERROR ) {
38 qDebug( "POP3: error retrieving header msgid: %i", info->index ); 38 qDebug( "POP3: error retrieving header msgid: %i", info->msg_index );
39 logout(); 39 logout();
40 return; 40 return;
41 } 41 }
42 RecMail *mail = parseHeader( header ); 42 RecMail *mail = parseHeader( header );
43 mail->setNumber( info->index ); 43 mail->setNumber( info->msg_index );
44 target.append( mail ); 44 target.append( mail );
45 } 45 }
46 46
47 logout(); 47 logout();
48} 48}
49 49
@@ -52,32 +52,32 @@ RecMail *POP3wrapper::parseHeader( const char *header )
52 int err = MAILIMF_NO_ERROR; 52 int err = MAILIMF_NO_ERROR;
53 size_t curTok; 53 size_t curTok;
54 RecMail *mail = new RecMail(); 54 RecMail *mail = new RecMail();
55 mailimf_fields *fields; 55 mailimf_fields *fields;
56 56
57 err = mailimf_fields_parse( (char *) header, strlen( header ), &curTok, &fields ); 57 err = mailimf_fields_parse( (char *) header, strlen( header ), &curTok, &fields );
58 for ( clistiter *current = clist_begin( fields->list ); current != NULL; current = current->next ) { 58 for ( clistiter *current = clist_begin( fields->fld_list ); current != NULL; current = current->next ) {
59 mailimf_field *field = (mailimf_field *) current->data; 59 mailimf_field *field = (mailimf_field *) current->data;
60 switch ( field->type ) { 60 switch ( field->fld_type ) {
61 case MAILIMF_FIELD_FROM: 61 case MAILIMF_FIELD_FROM:
62 mail->setFrom( *parseMailboxList( field->field.from->mb_list ) ); 62 mail->setFrom( *parseMailboxList( field->fld_data.fld_from->frm_mb_list ) );
63 break; 63 break;
64 case MAILIMF_FIELD_TO: 64 case MAILIMF_FIELD_TO:
65 mail->setTo( *parseAddressList( field->field.to->addr_list ) ); 65 mail->setTo( *parseAddressList( field->fld_data.fld_to->to_addr_list ) );
66 break; 66 break;
67 case MAILIMF_FIELD_CC: 67 case MAILIMF_FIELD_CC:
68 mail->setCC( *parseAddressList( field->field.cc->addr_list ) ); 68 mail->setCC( *parseAddressList( field->fld_data.fld_cc->cc_addr_list ) );
69 break; 69 break;
70 case MAILIMF_FIELD_BCC: 70 case MAILIMF_FIELD_BCC:
71 mail->setBcc( *parseAddressList( field->field.bcc->addr_list ) ); 71 mail->setBcc( *parseAddressList( field->fld_data.fld_bcc->bcc_addr_list ) );
72 break; 72 break;
73 case MAILIMF_FIELD_SUBJECT: 73 case MAILIMF_FIELD_SUBJECT:
74 mail->setSubject( QString( field->field.subject->value ) ); 74 mail->setSubject( QString( field->fld_data.fld_subject->sbj_value ) );
75 break; 75 break;
76 case MAILIMF_FIELD_ORIG_DATE: 76 case MAILIMF_FIELD_ORIG_DATE:
77 mail->setDate( *parseDateTime( field->field.orig_date->date_time ) ); 77 mail->setDate( *parseDateTime( field->fld_data.fld_orig_date->dt_date_time ) );
78 break; 78 break;
79 default: 79 default:
80 break; 80 break;
81 } 81 }
82 } 82 }
83 83
@@ -86,43 +86,43 @@ RecMail *POP3wrapper::parseHeader( const char *header )
86 86
87QString *POP3wrapper::parseDateTime( mailimf_date_time *date ) 87QString *POP3wrapper::parseDateTime( mailimf_date_time *date )
88{ 88{
89 char tmp[23]; 89 char tmp[23];
90 90
91 snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i", 91 snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i",
92 date->day, date->month, date->year, date->hour, date->min, date->sec, date->zone ); 92 date->dt_day, date->dt_month, date->dt_year, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone );
93 93
94 QString *result = new QString( tmp ); 94 QString *result = new QString( tmp );
95 95
96 return result; 96 return result;
97} 97}
98 98
99QString *POP3wrapper::parseAddressList( mailimf_address_list *list ) 99QString *POP3wrapper::parseAddressList( mailimf_address_list *list )
100{ 100{
101 QString *result = new QString( "" ); 101 QString *result = new QString( "" );
102 102
103 bool first = true; 103 bool first = true;
104 for ( clistiter *current = clist_begin( list->list ); current != NULL; current = current->next ) { 104 for ( clistiter *current = clist_begin( list->ad_list ); current != NULL; current = current->next ) {
105 mailimf_address *addr = (mailimf_address *) current->data; 105 mailimf_address *addr = (mailimf_address *) current->data;
106 106
107 if ( !first ) { 107 if ( !first ) {
108 result->append( "," ); 108 result->append( "," );
109 } else { 109 } else {
110 first = false; 110 first = false;
111 } 111 }
112 112
113 QString *tmp; 113 QString *tmp;
114 114
115 switch ( addr->type ) { 115 switch ( addr->ad_type ) {
116 case MAILIMF_ADDRESS_MAILBOX: 116 case MAILIMF_ADDRESS_MAILBOX:
117 tmp = parseMailbox( addr->mailbox ); 117 tmp = parseMailbox( addr->ad_data.ad_mailbox );
118 result->append( *tmp ); 118 result->append( *tmp );
119 delete tmp; 119 delete tmp;
120 break; 120 break;
121 case MAILIMF_ADDRESS_GROUP: 121 case MAILIMF_ADDRESS_GROUP:
122 tmp = parseGroup( addr->group ); 122 tmp = parseGroup( addr->ad_data.ad_group );
123 result->append( *tmp ); 123 result->append( *tmp );
124 delete tmp; 124 delete tmp;
125 break; 125 break;
126 default: 126 default:
127 qDebug( "POP3: unkown mailimf address type" ); 127 qDebug( "POP3: unkown mailimf address type" );
128 break; 128 break;
@@ -133,17 +133,17 @@ QString *POP3wrapper::parseAddressList( mailimf_address_list *list )
133} 133}
134 134
135QString *POP3wrapper::parseGroup( mailimf_group *group ) 135QString *POP3wrapper::parseGroup( mailimf_group *group )
136{ 136{
137 QString *result = new QString( "" ); 137 QString *result = new QString( "" );
138 138
139 result->append( group->display_name ); 139 result->append( group->grp_display_name );
140 result->append( ": " ); 140 result->append( ": " );
141 141
142 if ( group->mb_list != NULL ) { 142 if ( group->grp_mb_list != NULL ) {
143 QString *tmp = parseMailboxList( group->mb_list ); 143 QString *tmp = parseMailboxList( group->grp_mb_list );
144 result->append( *tmp ); 144 result->append( *tmp );
145 delete tmp; 145 delete tmp;
146 } 146 }
147 147
148 result->append( ";" ); 148 result->append( ";" );
149 149
@@ -151,30 +151,30 @@ QString *POP3wrapper::parseGroup( mailimf_group *group )
151} 151}
152 152
153QString *POP3wrapper::parseMailbox( mailimf_mailbox *box ) 153QString *POP3wrapper::parseMailbox( mailimf_mailbox *box )
154{ 154{
155 QString *result = new QString( "" ); 155 QString *result = new QString( "" );
156 156
157 if ( box->display_name == NULL ) { 157 if ( box->mb_display_name == NULL ) {
158 result->append( box->addr_spec ); 158 result->append( box->mb_addr_spec );
159 } else { 159 } else {
160 result->append( box->display_name ); 160 result->append( box->mb_display_name );
161 result->append( " <" ); 161 result->append( " <" );
162 result->append( box->addr_spec ); 162 result->append( box->mb_addr_spec );
163 result->append( ">" ); 163 result->append( ">" );
164 } 164 }
165 165
166 return result; 166 return result;
167} 167}
168 168
169QString *POP3wrapper::parseMailboxList( mailimf_mailbox_list *list ) 169QString *POP3wrapper::parseMailboxList( mailimf_mailbox_list *list )
170{ 170{
171 QString *result = new QString( "" ); 171 QString *result = new QString( "" );
172 172
173 bool first = true; 173 bool first = true;
174 for ( clistiter *current = clist_begin( list->list ); current != NULL; current = current->next ) { 174 for ( clistiter *current = clist_begin( list->mb_list ); current != NULL; current = current->next ) {
175 mailimf_mailbox *box = (mailimf_mailbox *) current->data; 175 mailimf_mailbox *box = (mailimf_mailbox *) current->data;
176 176
177 if ( !first ) { 177 if ( !first ) {
178 result->append( "," ); 178 result->append( "," );
179 } else { 179 } else {
180 first = false; 180 first = false;
@@ -209,24 +209,24 @@ void POP3wrapper::login()
209 } else { 209 } else {
210 err = mailpop3_socket_connect( m_pop3, (char*)server, port ); 210 err = mailpop3_socket_connect( m_pop3, (char*)server, port );
211 } 211 }
212 212
213 if ( err != MAILPOP3_NO_ERROR ) { 213 if ( err != MAILPOP3_NO_ERROR ) {
214 qDebug( "pop3: error connecting to %s\n reason: %s", server, 214 qDebug( "pop3: error connecting to %s\n reason: %s", server,
215 m_pop3->response ); 215 m_pop3->pop3_response );
216 mailpop3_free( m_pop3 ); 216 mailpop3_free( m_pop3 );
217 m_pop3 = NULL; 217 m_pop3 = NULL;
218 return; 218 return;
219 } 219 }
220 qDebug( "POP3: connected!" ); 220 qDebug( "POP3: connected!" );
221 221
222 // login 222 // login
223 // TODO: decide if apop or plain login should be used 223 // TODO: decide if apop or plain login should be used
224 err = mailpop3_login( m_pop3, (char *) user, (char *) pass ); 224 err = mailpop3_login( m_pop3, (char *) user, (char *) pass );
225 if ( err != MAILPOP3_NO_ERROR ) { 225 if ( err != MAILPOP3_NO_ERROR ) {
226 qDebug( "pop3: error logging in: %s", m_pop3->response ); 226 qDebug( "pop3: error logging in: %s", m_pop3->pop3_response );
227 logout(); 227 logout();
228 return; 228 return;
229 } 229 }
230 230
231 qDebug( "POP3: logged in!" ); 231 qDebug( "POP3: logged in!" );
232} 232}