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);