X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fpost.c;h=580d3d13672f235e70ce7220fa76cd53e1a1ef40;hb=4877596410e850f2295f1015738bd8ca6e86ee0f;hp=87e31e8f60c348cebdcb204cc87dc67f686ec1ea;hpb=da304a48a24d7cc7fafae13c994d94ad3d6483f2;p=mmh diff --git a/uip/post.c b/uip/post.c index 87e31e8..580d3d1 100644 --- a/uip/post.c +++ b/uip/post.c @@ -2,8 +2,6 @@ /* * post.c -- enter messages into the mail 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. @@ -22,19 +20,12 @@ #include #include -#include #include -#ifdef TIME_WITH_SYS_TIME +#ifdef HAVE_SYS_TIME_H # include -# include -#else -# ifdef TM_IN_SYS_TIME -# include -# else -# include -# endif #endif +#include #ifdef SMTPMTS # include @@ -148,6 +139,10 @@ static struct swit switches[] = { { "port server port name/number", 4 }, #define TLSSW 41 { "tls", TLSminc(-3) }, +#define FILEPROCSW 42 + { "fileproc", -4 }, +#define MHLPROCSW 43 + { "mhlproc", -3 }, { NULL, 0 } }; @@ -270,10 +265,10 @@ static char *fccfold[FCCS]; /* foldernames for FCC'ing */ static struct headers *hdrtab; /* table for the message we're doing */ -static struct mailname localaddrs={NULL}; /* local addrs */ -static struct mailname netaddrs={NULL}; /* network addrs */ -static struct mailname uuaddrs={NULL}; /* uucp addrs */ -static struct mailname tmpaddrs={NULL}; /* temporary queue */ +static struct mailname localaddrs; /* local addrs */ +static struct mailname netaddrs; /* network addrs */ +static struct mailname uuaddrs; /* uucp addrs */ +static struct mailname tmpaddrs; /* temporary queue */ #ifdef SMTPMTS static int snoop = 0; @@ -539,6 +534,18 @@ main (int argc, char **argv) case TLSSW: tls++; continue; + + case FILEPROCSW: + if (!(cp = *argp++) || *cp == '-') + adios (NULL, "missing argument to %s", argp[-2]); + fileproc = cp; + continue; + + case MHLPROCSW: + if (!(cp = *argp++) || *cp == '-') + adios (NULL, "missing argument to %s", argp[-2]); + mhlproc = cp; + continue; } } if (msg) @@ -861,8 +868,8 @@ start_headers (void) mygid = getgid (); time (&tclock); - strncpy (from, adrsprintf (NULL, NULL), sizeof(from)); - strncpy (myhost, LocalName (), sizeof(myhost)); + strncpy (from, getlocaladdr(), sizeof(from)); + strncpy (myhost, LocalName (0), sizeof(myhost)); for (cp = myhost; *cp; cp++) *cp = uptolow (*cp); @@ -870,7 +877,7 @@ start_headers (void) if ((cp = getfullname ()) && *cp) { strncpy (sigbuf, cp, sizeof(sigbuf)); snprintf (signature, sizeof(signature), "%s <%s>", - sigbuf, adrsprintf (NULL, NULL)); + sigbuf, getlocaladdr()); if ((cp = getname (signature)) == NULL) adios (NULL, "getname () failed -- you lose extraordinarily big"); if ((mp = getm (cp, NULL, 0, AD_HOST, NULL)) == NULL) @@ -879,7 +886,7 @@ start_headers (void) while (getname ("")) continue; } else { - strncpy (signature, adrsprintf (NULL, NULL), sizeof(signature)); + strncpy (signature, getlocaladdr(), sizeof(signature)); } } @@ -901,7 +908,7 @@ finish_headers (FILE *out) fprintf (out, "Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MFRM) { /* There was already a From: in the draft. Don't add one. */ if (!draft_from_masquerading) @@ -936,7 +943,7 @@ finish_headers (FILE *out) fprintf (out, "Resent-Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Resent-Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MRFM) { /* There was already a Resent-From: in draft. Don't add one. */ if (!draft_from_masquerading) @@ -1190,7 +1197,7 @@ make_bcc_file (int dashstuff) fprintf (out, "Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MFRM) { /* There was already a From: in the draft. Don't add one. */ if (!draft_from_masquerading) @@ -1311,16 +1318,13 @@ make_bcc_file (int dashstuff) static int find_prefix (void) { - int len, result; + int result = OK; unsigned char buffer[BUFSIZ]; FILE *in; if ((in = fopen (tmpfil, "r")) == NULL) adios (tmpfil, "unable to re-open"); - len = strlen (prefix); - - result = OK; while (fgets (buffer, sizeof(buffer) - 1, in)) if (buffer[0] == '-' && buffer[1] == '-') { unsigned char *cp; @@ -1600,12 +1604,10 @@ do_text (char *file, int fd) * SIGNAL HANDLING */ -static RETSIGTYPE +static void sigser (int i) { -#ifndef RELIABLE_SIGNALS - SIGNAL (i, SIG_IGN); -#endif + NMH_UNUSED (i); unlink (tmpfil); if (msgflags & MINV)