/*
* rcvdist.c -- asynchronously redistribute messages
*
- * $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.
* prototypes
*/
static void rcvdistout (FILE *, char *, char *);
-static int unlink_done (int);
+static void unlink_done (int) NORETURN;
int
int i, vecp = 1;
char *addrs = NULL, *cp, *form = NULL, buf[BUFSIZ];
char **argp, **arguments, *vec[MAXARGS];
- register FILE *fp;
+ FILE *fp;
+ char *tfile = NULL;
done=unlink_done;
invo_name);
umask (~m_gmprot ());
- strncpy (tmpfil, m_tmpfil (invo_name), sizeof(tmpfil));
- if ((fp = fopen (tmpfil, "w+")) == NULL)
- adios (tmpfil, "unable to create");
+
+ tfile = m_mktemp2(NULL, invo_name, NULL, &fp);
+ if (tfile == NULL) adios("rcvdist", "unable to create temporary file");
+ strncpy (tmpfil, tfile, sizeof(tmpfil));
+
cpydata (fileno (stdin), fileno (fp), "message", tmpfil);
fseek (fp, 0L, SEEK_SET);
- strncpy (drft, m_tmpfil (invo_name), sizeof(drft));
+
+ tfile = m_mktemp2(NULL, invo_name, NULL, NULL);
+ if (tfile == NULL) adios("forw", "unable to create temporary file");
+ strncpy (drft, tfile, sizeof(tmpfil));
+
rcvdistout (fp, form, addrs);
fclose (fp);
}
-static int
+static void
unlink_done (int status)
{
if (backup[0])
unlink (tmpfil);
exit (status ? RCV_MBX : RCV_MOK);
- return 1; /* dead code to satisfy the compiler */
}