diff src/accept.c @ 106:1f0d63713a1c

masqmail now *always* removes Bcc: headers this is the most simple way and taken by other MTAs (courier, postfix) too
author meillo@marmaro.de
date Tue, 29 Jun 2010 10:37:18 +0200
parents 47ee3fbcecd2
children db52c64acaa2
line wrap: on
line diff
--- a/src/accept.c	Tue Jun 29 10:20:09 2010 +0200
+++ b/src/accept.c	Tue Jun 29 10:37:18 2010 +0200
@@ -214,7 +214,6 @@
 		gboolean has_date = FALSE;
 		gboolean has_sender = FALSE;
 		gboolean has_from = FALSE;
-		gboolean has_rcpt = FALSE;
 		gboolean has_to_or_cc = FALSE;
 		GList *hdr_node, *hdr_node_next;
 		header *hdr;
@@ -239,21 +238,21 @@
 				break;
 			case HEAD_TO:
 			case HEAD_CC:
+				has_to_or_cc = TRUE;
+				/* fall through */
 			case HEAD_BCC:
-				has_rcpt = TRUE;
 				if (flags & ACC_RCPT_FROM_HEAD) {
 					DEBUG(5) debugf("hdr->value = %s\n", hdr->value);
 					if (hdr->value) {
 						msg->rcpt_list = addr_list_append_rfc822(msg->rcpt_list, hdr->value, conf.host_name);
 					}
 				}
-				if ((flags & ACC_DEL_BCC) && (hdr->id == HEAD_BCC)) {
+				if (hdr->id == HEAD_BCC) {
 					DEBUG(3) debugf("removing 'Bcc' header\n");
 					msg->hdr_list = g_list_remove_link(msg->hdr_list, hdr_node);
 					g_list_free_1(hdr_node);
 					destroy_header(hdr);
-				} else
-					has_to_or_cc = TRUE;
+				}
 				break;
 			case HEAD_ENVELOPE_TO:
 				if (flags & ACC_SAVE_ENVELOPE_TO) {
@@ -349,15 +348,10 @@
 			                                msg->return_path->local_part, msg->return_path->domain)
 			                );
 		}
-		if ((flags & ACC_HEAD_FROM_RCPT) && !has_rcpt) {
-			DEBUG(3) debugf("no To: or Cc: header, hence adding `undisclosed recipients' header\n");
+		if (!has_to_or_cc) {
+			DEBUG(3) debugf("no To: or Cc: header, hence adding `To: undisclosed recipients:;'\n");
 			msg->hdr_list = g_list_append(msg->hdr_list, create_header(HEAD_TO, "To: undisclosed-recipients:;\n"));
 		}
-		if ((flags & ACC_DEL_BCC) && !has_to_or_cc) {
-			/* Bcc headers have been removed, and there are no remaining rcpt headers */
-			DEBUG(3) debugf("adding empty 'Bcc:' header\n");
-			msg->hdr_list = g_list_append(msg->hdr_list, create_header(HEAD_BCC, "Bcc:\n"));
-		}
 		if (!has_date) {
 			DEBUG(3) debugf("adding 'Date:' header\n");
 			msg->hdr_list = g_list_append(msg->hdr_list, create_header(HEAD_DATE, "Date: %s\n", rec_timestamp()));