diff options
author | Aaro Koskinen | 2013-02-25 00:45:11 +0200 |
---|---|---|
committer | Denys Vlasenko | 2013-03-18 18:45:15 +0100 |
commit | 4a732220e907bfed95e87be38cea6e15253a9ad8 (patch) | |
tree | ab9e20e598241ff9afb025725cf8366ca5e9a9ad | |
parent | 236f222cde03b2594732dacdfe031c7c16e20f4a (diff) | |
download | busybox-4a732220e907bfed95e87be38cea6e15253a9ad8.zip busybox-4a732220e907bfed95e87be38cea6e15253a9ad8.tar.gz |
sendmail: don't add To: header if it already exists
If the message we are sending already has To: header, don't add a new one.
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | mailutils/sendmail.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c index 22f735b..36a1b97 100644 --- a/mailutils/sendmail.c +++ b/mailutils/sendmail.c @@ -187,6 +187,7 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv) HDR_BCC, } last_hdr = 0; int check_hdr; + int has_to = 0; enum { //--- standard options @@ -348,8 +349,10 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv) // analyze headers // To: or Cc: headers add recipients + check_hdr = 0 == strncasecmp("To:", s, 3); + has_to |= check_hdr; if (opts & OPT_t) { - if (0 == strncasecmp("To:", s, 3) || 0 == strncasecmp("Bcc:" + 1, s, 3)) { + if (check_hdr || 0 == strncasecmp("Bcc:" + 1, s, 3)) { rcptto_list(s+3); last_hdr = HDR_TOCC; goto addheader; @@ -391,7 +394,9 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv) rcptto(t); //if (MAX_HEADERS && ++nheaders >= MAX_HEADERS) // goto bail; - llist_add_to_end(&list, xasprintf("To: %s", t)); + if (!has_to) + llist_add_to_end(&list, + xasprintf("To: %s", t)); argv++; } // enter "put message" mode |