Mercurial > masqmail-0.2
comparison src/pop3_in.c @ 15:f671821d8222
code beautifying; 0 -> \0 if appropriate
author | meillo@marmaro.de |
---|---|
date | Thu, 06 Nov 2008 09:18:38 +0100 |
parents | 26e34ae9a3e3 |
children | c93023f58cc7 |
comparison
equal
deleted
inserted
replaced
14:a8f3424347dc | 15:f671821d8222 |
---|---|
15 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 15 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 */ | 16 */ |
17 | 17 |
18 /* see RFC 1725 */ | 18 /* see RFC 1725 */ |
19 | 19 |
20 #include <sys/wait.h> | |
21 #include <sys/stat.h> | |
22 | |
20 #include "masqmail.h" | 23 #include "masqmail.h" |
21 #include "pop3_in.h" | 24 #include "pop3_in.h" |
22 #include "readsock.h" | 25 #include "readsock.h" |
23 | |
24 #include <sys/wait.h> | |
25 #include <sys/stat.h> | |
26 | 26 |
27 #ifdef USE_LIB_CRYPTO | 27 #ifdef USE_LIB_CRYPTO |
28 #include <openssl/md5.h> | 28 #include <openssl/md5.h> |
29 #else | 29 #else |
30 #include "md5/global.h" | 30 #include "md5/global.h" |
374 while (*p && (*p != '<')) | 374 while (*p && (*p != '<')) |
375 p++; | 375 p++; |
376 while (*p && (*p != '>') && (i < 254)) | 376 while (*p && (*p != '>') && (i < 254)) |
377 buf[i++] = *(p++); | 377 buf[i++] = *(p++); |
378 buf[i++] = '>'; | 378 buf[i++] = '>'; |
379 buf[i] = 0; | 379 buf[i] = '\0'; |
380 | 380 |
381 popb->timestamp = g_strdup(buf); | 381 popb->timestamp = g_strdup(buf); |
382 | 382 |
383 return TRUE; | 383 return TRUE; |
384 } | 384 } |
446 { | 446 { |
447 pop3_base *popb; | 447 pop3_base *popb; |
448 gint sock; | 448 gint sock; |
449 | 449 |
450 DEBUG(5) debugf("pop3_in_open_child entered, cmd = %s\n", cmd); | 450 DEBUG(5) debugf("pop3_in_open_child entered, cmd = %s\n", cmd); |
451 | |
452 sock = child(cmd); | 451 sock = child(cmd); |
453 | |
454 if (sock > 0) { | 452 if (sock > 0) { |
455 | |
456 popb = create_pop3base(sock, flags); | 453 popb = create_pop3base(sock, flags); |
457 popb->remote_host = NULL; | 454 popb->remote_host = NULL; |
458 | |
459 return popb; | 455 return popb; |
460 } | 456 } |
461 logwrite(LOG_ALERT, "child failed (sock = %d): %s\n", sock, strerror(errno)); | 457 logwrite(LOG_ALERT, "child failed (sock = %d): %s\n", sock, strerror(errno)); |
462 | 458 |
463 return NULL; | 459 return NULL; |
564 msg->received_prot = (popb->flags & POP3_FLAG_APOP) ? PROT_APOP : PROT_POP3; | 560 msg->received_prot = (popb->flags & POP3_FLAG_APOP) ? PROT_APOP : PROT_POP3; |
565 msg->transfer_id = (popb->next_id)++; | 561 msg->transfer_id = (popb->next_id)++; |
566 msg->rcpt_list = g_list_append(NULL, copy_address(rcpt)); | 562 msg->rcpt_list = g_list_append(NULL, copy_address(rcpt)); |
567 | 563 |
568 if ((err = accept_message(popb->in, msg, ACC_MAIL_FROM_HEAD | 564 if ((err = accept_message(popb->in, msg, ACC_MAIL_FROM_HEAD |
569 | (conf.do_save_envelope_to ? ACC_SAVE_ENVELOPE_TO : 0))) | 565 | (conf.do_save_envelope_to ? ACC_SAVE_ENVELOPE_TO : 0))) |
570 == AERR_OK) | 566 == AERR_OK) |
571 return msg; | 567 return msg; |
572 | 568 |
573 destroy_message(msg); | 569 destroy_message(msg); |
574 } | 570 } |
589 | 585 |
590 gboolean | 586 gboolean |
591 pop3_in_quit(pop3_base * popb) | 587 pop3_in_quit(pop3_base * popb) |
592 { | 588 { |
593 pop3_printf(popb->out, "QUIT\r\n"); | 589 pop3_printf(popb->out, "QUIT\r\n"); |
594 | |
595 DEBUG(4) debugf("QUIT\n"); | 590 DEBUG(4) debugf("QUIT\n"); |
596 | |
597 signal(SIGALRM, SIG_DFL); | 591 signal(SIGALRM, SIG_DFL); |
598 | |
599 return TRUE; | 592 return TRUE; |
600 } | 593 } |
601 | 594 |
602 /* Send a DELE command for each message in (the old) uid listing. | 595 /* Send a DELE command for each message in (the old) uid listing. |
603 This is to prevent mail from to be kept on server, if a previous | 596 This is to prevent mail from to be kept on server, if a previous |
618 } | 611 } |
619 return TRUE; | 612 return TRUE; |
620 } | 613 } |
621 | 614 |
622 gboolean | 615 gboolean |
623 pop3_get(pop3_base * popb, gchar * user, gchar * pass, address * rcpt, address * return_path, gint max_count, gint max_size, gboolean max_size_delete) | 616 pop3_get(pop3_base * popb, gchar * user, gchar * pass, address * rcpt, address * return_path, |
617 gint max_count, gint max_size, gboolean max_size_delete) | |
624 { | 618 { |
625 gboolean ok = FALSE; | 619 gboolean ok = FALSE; |
626 gint num_children = 0; | 620 gint num_children = 0; |
627 | 621 |
628 DEBUG(5) debugf("rcpt = %s@%s\n", rcpt->local_part, rcpt->domain); | 622 DEBUG(5) debugf("rcpt = %s@%s\n", rcpt->local_part, rcpt->domain); |
632 if (pop3_in_init(popb)) { | 626 if (pop3_in_init(popb)) { |
633 if (pop3_in_login(popb, user, pass)) { | 627 if (pop3_in_login(popb, user, pass)) { |
634 if (pop3_in_stat(popb)) { | 628 if (pop3_in_stat(popb)) { |
635 if (popb->msg_cnt > 0) { | 629 if (popb->msg_cnt > 0) { |
636 | 630 |
637 logwrite(LOG_NOTICE | LOG_VERBOSE, "%d message(s) for user %s at %s\n", popb->msg_cnt, user, popb->remote_host); | 631 logwrite(LOG_NOTICE | LOG_VERBOSE, "%d message(s) for user %s at %s\n", |
632 popb->msg_cnt, user, popb->remote_host); | |
638 | 633 |
639 if (pop3_in_list(popb)) { | 634 if (pop3_in_list(popb)) { |
640 gboolean do_get = !(popb->flags & POP3_FLAG_UIDL); | 635 gboolean do_get = !(popb->flags & POP3_FLAG_UIDL); |
641 if (!do_get) | 636 if (!do_get) |
642 do_get = pop3_in_uidl(popb); | 637 do_get = pop3_in_uidl(popb); |