summaryrefslogtreecommitdiffabout
path: root/libetpan/src/driver/implementation/pop3/pop3driver.c
Unidiff
Diffstat (limited to 'libetpan/src/driver/implementation/pop3/pop3driver.c') (more/less context) (show whitespace changes)
-rw-r--r--libetpan/src/driver/implementation/pop3/pop3driver.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libetpan/src/driver/implementation/pop3/pop3driver.c b/libetpan/src/driver/implementation/pop3/pop3driver.c
index ea69923..6cc6a9a 100644
--- a/libetpan/src/driver/implementation/pop3/pop3driver.c
+++ b/libetpan/src/driver/implementation/pop3/pop3driver.c
@@ -228,71 +228,77 @@ static int pop3driver_parameters(mailsession * session,
228{ 228{
229 struct pop3_session_state_data * data; 229 struct pop3_session_state_data * data;
230 230
231 data = get_data(session); 231 data = get_data(session);
232 232
233 switch (id) { 233 switch (id) {
234 case POP3DRIVER_SET_AUTH_TYPE: 234 case POP3DRIVER_SET_AUTH_TYPE:
235 { 235 {
236 int * param; 236 int * param;
237 237
238 param = value; 238 param = value;
239 239
240 data->pop3_auth_type = * param; 240 data->pop3_auth_type = * param;
241 return MAIL_NO_ERROR; 241 return MAIL_NO_ERROR;
242 } 242 }
243 } 243 }
244 244
245 return MAIL_ERROR_INVAL; 245 return MAIL_ERROR_INVAL;
246} 246}
247 247
248static int pop3driver_login(mailsession * session, 248static int pop3driver_login(mailsession * session,
249 char * userid, char * password) 249 char * userid, char * password)
250{ 250{
251 int r; 251 int r;
252 //LR
253 int ret;
252 carray * msg_tab; 254 carray * msg_tab;
253 struct pop3_session_state_data * data; 255 struct pop3_session_state_data * data;
254 256
255 data = get_data(session); 257 data = get_data(session);
256 258
257 switch (data->pop3_auth_type) { 259 switch (data->pop3_auth_type) {
258 case POP3DRIVER_AUTH_TYPE_TRY_APOP: 260 case POP3DRIVER_AUTH_TYPE_TRY_APOP:
259 r = mailpop3_login_apop(get_pop3_session(session), userid, password); 261 r = mailpop3_login_apop(get_pop3_session(session), userid, password);
260 if (r != MAILPOP3_NO_ERROR) 262 if (r != MAILPOP3_NO_ERROR)
261 r = mailpop3_login(get_pop3_session(session), userid, password); 263 r = mailpop3_login(get_pop3_session(session), userid, password);
262 break; 264 break;
263 265
264 case POP3DRIVER_AUTH_TYPE_APOP: 266 case POP3DRIVER_AUTH_TYPE_APOP:
265 r = mailpop3_login_apop(get_pop3_session(session), userid, password); 267 r = mailpop3_login_apop(get_pop3_session(session), userid, password);
266 break; 268 break;
267 269
268 default: 270 default:
269 case POP3DRIVER_AUTH_TYPE_PLAIN: 271 case POP3DRIVER_AUTH_TYPE_PLAIN:
270 r = mailpop3_login(get_pop3_session(session), userid, password); 272 r = mailpop3_login(get_pop3_session(session), userid, password);
271 break; 273 break;
272 } 274 }
273 275
276 // LR 2 lines
277 ret = pop3driver_pop3_error_to_mail_error(r);
278 if ( ret == MAIL_NO_ERROR )
274 mailpop3_list(get_pop3_session(session), &msg_tab); 279 mailpop3_list(get_pop3_session(session), &msg_tab);
280 // LR
275 281
276 return pop3driver_pop3_error_to_mail_error(r); 282 return pop3driver_pop3_error_to_mail_error(r);
277} 283}
278 284
279static int pop3driver_logout(mailsession * session) 285static int pop3driver_logout(mailsession * session)
280{ 286{
281 int r; 287 int r;
282 288
283 r = mailpop3_quit(get_pop3_session(session)); 289 r = mailpop3_quit(get_pop3_session(session));
284 290
285 return pop3driver_pop3_error_to_mail_error(r); 291 return pop3driver_pop3_error_to_mail_error(r);
286} 292}
287 293
288static int pop3driver_noop(mailsession * session) 294static int pop3driver_noop(mailsession * session)
289{ 295{
290 int r; 296 int r;
291 297
292 r = mailpop3_noop(get_pop3_session(session)); 298 r = mailpop3_noop(get_pop3_session(session));
293 299
294 return pop3driver_pop3_error_to_mail_error(r); 300 return pop3driver_pop3_error_to_mail_error(r);
295} 301}
296 302
297static int pop3driver_status_folder(mailsession * session, char * mb, 303static int pop3driver_status_folder(mailsession * session, char * mb,
298 uint32_t * result_messages, 304 uint32_t * result_messages,