[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH 7/7] sendmail: don't add multiple To: headers
From:       Aaro Koskinen <aaro.koskinen () iki ! fi>
Date:       2013-02-24 22:45:12
Message-ID: 1361745912-9406-8-git-send-email-aaro.koskinen () iki ! fi
[Download RAW message or body]

When adding To: header, add only a single header. If there are multiple
addresses, make it multiline.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
---
 mailutils/sendmail.c |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
index 323ad0a..320a259 100644
--- a/mailutils/sendmail.c
+++ b/mailutils/sendmail.c
@@ -172,7 +172,7 @@ static void rcptto_list(const char *_str)
 }
 
 int sendmail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int sendmail_main(int argc UNUSED_PARAM, char **argv)
+int sendmail_main(int argc, char **argv)
 {
 	char *opt_connect = opt_connect;
 	char *opt_from;
@@ -218,7 +218,7 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 	// it is still under development.
 	opts = getopt32(argv, "tf:o:iw:H:S:a::v", &opt_from, NULL,
 			&timeout, &opt_connect, &opt_connect, &list, &verbose);
-	//argc -= optind;
+	argc -= optind;
 	argv += optind;
 
 	// process -a[upm]<token> options
@@ -389,15 +389,29 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 			// so stop "analyze headers" mode
  reenter:
 			// put recipients specified on cmdline
+			check_hdr = 1;
 			while (*argv) {
 				char *t = sane_address(*argv);
 				rcptto(t);
 				//if (MAX_HEADERS && ++nheaders >= MAX_HEADERS)
 				//	goto bail;
-				if (!has_to)
+				if (!has_to) {
+					char const *hdr;
+
+					if (check_hdr && argc > 1)
+						hdr = "To: %s,";
+					else if (check_hdr)
+						hdr = "To: %s";
+					else if (argc > 1)
+						hdr = "To: %s," + 3;
+					else
+						hdr = "To: %s" + 3;
 					llist_add_to_end(&list,
-							xasprintf("To: %s", t));
+							 xasprintf(hdr, t));
+					check_hdr = 0;
+				}
 				argv++;
+				argc--;
 			}
 			// enter "put message" mode
 			// N.B. DATA fails iff no recipients were accepted (or even provided)
-- 
1.7.10.4

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic