Diffstat (limited to 'kmicromail/libetpan/pop3/mailpop3.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libetpan/pop3/mailpop3.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kmicromail/libetpan/pop3/mailpop3.c b/kmicromail/libetpan/pop3/mailpop3.c index 28fafe9..691b07a 100644 --- a/kmicromail/libetpan/pop3/mailpop3.c +++ b/kmicromail/libetpan/pop3/mailpop3.c | |||
@@ -463,98 +463,101 @@ int mailpop3_apop(mailpop3 * f, | |||
463 | int mailpop3_user(mailpop3 * f, const char * user) | 463 | int mailpop3_user(mailpop3 * f, const char * user) |
464 | { | 464 | { |
465 | char command[POP3_STRING_SIZE]; | 465 | char command[POP3_STRING_SIZE]; |
466 | int r; | 466 | int r; |
467 | char * response; | 467 | char * response; |
468 | 468 | ||
469 | if (f->pop3_state != POP3_STATE_AUTHORIZATION) | 469 | if (f->pop3_state != POP3_STATE_AUTHORIZATION) |
470 | return MAILPOP3_ERROR_BAD_STATE; | 470 | return MAILPOP3_ERROR_BAD_STATE; |
471 | 471 | ||
472 | /* send user command */ | 472 | /* send user command */ |
473 | 473 | ||
474 | snprintf(command, POP3_STRING_SIZE, "USER %s\r\n", user); | 474 | snprintf(command, POP3_STRING_SIZE, "USER %s\r\n", user); |
475 | r = send_command(f, command); | 475 | r = send_command(f, command); |
476 | if (r == -1) | 476 | if (r == -1) |
477 | return MAILPOP3_ERROR_STREAM; | 477 | return MAILPOP3_ERROR_STREAM; |
478 | 478 | ||
479 | response = read_line(f); | 479 | response = read_line(f); |
480 | if (response == NULL) | 480 | if (response == NULL) |
481 | return MAILPOP3_ERROR_STREAM; | 481 | return MAILPOP3_ERROR_STREAM; |
482 | r = parse_response(f, response); | 482 | r = parse_response(f, response); |
483 | 483 | ||
484 | if (r != RESPONSE_OK) | 484 | if (r != RESPONSE_OK) |
485 | return MAILPOP3_ERROR_BAD_USER; | 485 | return MAILPOP3_ERROR_BAD_USER; |
486 | 486 | ||
487 | return MAILPOP3_NO_ERROR; | 487 | return MAILPOP3_NO_ERROR; |
488 | } | 488 | } |
489 | 489 | ||
490 | int mailpop3_pass(mailpop3 * f, const char * password) | 490 | int mailpop3_pass(mailpop3 * f, const char * password) |
491 | { | 491 | { |
492 | char command[POP3_STRING_SIZE]; | 492 | char command[POP3_STRING_SIZE]; |
493 | int r; | 493 | int r; |
494 | char * response; | 494 | char * response; |
495 | 495 | ||
496 | if (f->pop3_state != POP3_STATE_AUTHORIZATION) | 496 | if (f->pop3_state != POP3_STATE_AUTHORIZATION) |
497 | return MAILPOP3_ERROR_BAD_STATE; | 497 | return MAILPOP3_ERROR_BAD_STATE; |
498 | 498 | ||
499 | /* send password command */ | 499 | /* send password command */ |
500 | 500 | ||
501 | snprintf(command, POP3_STRING_SIZE, "PASS %s\r\n", password); | 501 | snprintf(command, POP3_STRING_SIZE, "PASS %s\r\n", password); |
502 | r = send_command(f, command); | 502 | r = send_command(f, command); |
503 | if (r == -1) | 503 | if (r == -1) |
504 | return MAILPOP3_ERROR_STREAM; | 504 | return MAILPOP3_ERROR_STREAM; |
505 | 505 | ||
506 | response = read_line(f); | 506 | response = read_line(f); |
507 | if (response == NULL) | 507 | if (response == NULL) |
508 | return MAILPOP3_ERROR_STREAM; | 508 | return MAILPOP3_ERROR_STREAM; |
509 | r = parse_response(f, response); | 509 | r = parse_response(f, response); |
510 | 510 | ||
511 | if (r != RESPONSE_OK) | 511 | if (r != RESPONSE_OK) { |
512 | // LR | ||
513 | fprintf(stderr,"POP3 login error. Response from server:\n%s\n",response ); | ||
512 | return MAILPOP3_ERROR_BAD_PASSWORD; | 514 | return MAILPOP3_ERROR_BAD_PASSWORD; |
515 | } | ||
513 | 516 | ||
514 | f->pop3_state = POP3_STATE_TRANSACTION; | 517 | f->pop3_state = POP3_STATE_TRANSACTION; |
515 | 518 | ||
516 | return MAILPOP3_NO_ERROR; | 519 | return MAILPOP3_NO_ERROR; |
517 | } | 520 | } |
518 | 521 | ||
519 | static int read_list(mailpop3 * f, carray ** result); | 522 | static int read_list(mailpop3 * f, carray ** result); |
520 | 523 | ||
521 | 524 | ||
522 | 525 | ||
523 | static int read_uidl(mailpop3 * f, carray * msg_tab); | 526 | static int read_uidl(mailpop3 * f, carray * msg_tab); |
524 | 527 | ||
525 | 528 | ||
526 | 529 | ||
527 | static int mailpop3_do_uidl(mailpop3 * f, carray * msg_tab) | 530 | static int mailpop3_do_uidl(mailpop3 * f, carray * msg_tab) |
528 | { | 531 | { |
529 | char command[POP3_STRING_SIZE]; | 532 | char command[POP3_STRING_SIZE]; |
530 | int r; | 533 | int r; |
531 | char * response; | 534 | char * response; |
532 | 535 | ||
533 | if (f->pop3_state != POP3_STATE_TRANSACTION) | 536 | if (f->pop3_state != POP3_STATE_TRANSACTION) |
534 | return MAILPOP3_ERROR_BAD_STATE; | 537 | return MAILPOP3_ERROR_BAD_STATE; |
535 | 538 | ||
536 | /* send list command */ | 539 | /* send list command */ |
537 | 540 | ||
538 | snprintf(command, POP3_STRING_SIZE, "UIDL\r\n"); | 541 | snprintf(command, POP3_STRING_SIZE, "UIDL\r\n"); |
539 | r = send_command(f, command); | 542 | r = send_command(f, command); |
540 | if (r == -1) | 543 | if (r == -1) |
541 | return MAILPOP3_ERROR_STREAM; | 544 | return MAILPOP3_ERROR_STREAM; |
542 | 545 | ||
543 | response = read_line(f); | 546 | response = read_line(f); |
544 | if (response == NULL) | 547 | if (response == NULL) |
545 | return MAILPOP3_ERROR_STREAM; | 548 | return MAILPOP3_ERROR_STREAM; |
546 | r = parse_response(f, response); | 549 | r = parse_response(f, response); |
547 | 550 | ||
548 | if (r != RESPONSE_OK) | 551 | if (r != RESPONSE_OK) |
549 | return MAILPOP3_ERROR_CANT_LIST; | 552 | return MAILPOP3_ERROR_CANT_LIST; |
550 | 553 | ||
551 | r = read_uidl(f, msg_tab); | 554 | r = read_uidl(f, msg_tab); |
552 | if (r != MAILPOP3_NO_ERROR) | 555 | if (r != MAILPOP3_NO_ERROR) |
553 | return r; | 556 | return r; |
554 | 557 | ||
555 | return MAILPOP3_NO_ERROR; | 558 | return MAILPOP3_NO_ERROR; |
556 | } | 559 | } |
557 | 560 | ||
558 | 561 | ||
559 | 562 | ||
560 | static int mailpop3_do_list(mailpop3 * f) | 563 | static int mailpop3_do_list(mailpop3 * f) |