X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fspost.c;h=e9e44a809645487d6df1552875bc2a4954a619d4;hb=a93204a5abced109070990a2b9d567344f352cbd;hp=7a880e972d4cbfefbf97bca95c888dd138cfa7d3;hpb=3465392f2ac1ac472d44c10c3c989389421c82b2;p=mmh diff --git a/uip/spost.c b/uip/spost.c index 7a880e9..e9e44a8 100644 --- a/uip/spost.c +++ b/uip/spost.c @@ -5,8 +5,6 @@ * This is a simpler, faster, replacement for "post" for use * when "sendmail" is the transport system. * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -191,7 +189,7 @@ static void finish_headers (FILE *); static int get_header (char *, struct headers *); static void putadr (char *, struct mailname *); static int putone (char *, int, int); -static void insert_fcc (struct headers *, char *); +static void insert_fcc (struct headers *, unsigned char *); static void file (char *); static void fcc (char *, char *); @@ -352,15 +350,8 @@ main (int argc, char **argv) out = stdout; } else { -#ifdef HAVE_MKSTEMP if ((out = fdopen( mkstemp (tmpfil), "w" )) == NULL ) adios (tmpfil, "unable to create"); -#else - mktemp (tmpfil); - if ((out = fopen (tmpfil, "w")) == NULL) - adios (tmpfil, "unable to create"); - chmod (tmpfil, 0600); -#endif } hdrtab = (msgstate == normal) ? NHeaders : RHeaders; @@ -631,7 +622,7 @@ get_header (char *header, struct headers *table) struct headers *h; for (h = table; h->value; h++) - if (!strcasecmp (header, h->value)) + if (!mh_strcasecmp (header, h->value)) return (h - table); return NOTOK; @@ -720,9 +711,9 @@ putone (char *adr, int pos, int indent) static void -insert_fcc (struct headers *hdr, char *pp) +insert_fcc (struct headers *hdr, unsigned char *pp) { - char *cp; + unsigned char *cp; for (cp = pp; isspace (*cp); cp++) continue; @@ -749,19 +740,24 @@ make_bcc_file (void) char *vec[6]; FILE * in, *out; -#ifdef HAVE_MKSTEMP fd = mkstemp(bccfil); if (fd == -1 || (out = fdopen(fd, "w")) == NULL) adios (bccfil, "unable to create"); -#else - mktemp (bccfil); - if ((out = fopen (bccfil, "w")) == NULL) - adios (bccfil, "unable to create"); -#endif chmod (bccfil, 0600); fprintf (out, "Date: %s\n", dtimenow (0)); - fprintf (out, "From: %s\n", signature); + if (msgflags & MFRM) { + /* There was already a From: in the draft. Don't add one. */ + if (!draft_from_masquerading) + /* mts.conf didn't contain "masquerade:[...]draft_from[...]" + so we'll reveal the user's actual account@thismachine + address in a Sender: header (and use it as the envelope + From: later). */ + fprintf (out, "Sender: %s\n", from); + } + else + /* Construct a From: header. */ + fprintf (out, "From: %s\n", signature); if (subject) fprintf (out, "Subject: %s", subject); fprintf (out, "BCC:\n\n------- Blind-Carbon-Copy\n\n");