static int usr_file(int, char *);
static int usr_pipe(int, char *, char *, char **, int);
static int usr_folder(int, char *);
-static RETSIGTYPE alrmser(int);
+static void alrmser(int);
static void get_sender(char *, char **);
static int copy_message(int, char *, int);
static void verbose_printf(char *fmt, ...);
vec[1] = folder;
vec[2] = NULL;
- return usr_pipe(fd, "rcvstore", rcvstoreproc, vec, 1);
+ return usr_pipe(fd, "rcvstore", "rcvstore", vec, 1);
}
/*
usr_pipe(int fd, char *cmd, char *pgm, char **vec, int suppress)
{
pid_t child_id;
- int bytes, seconds, status;
+ int bytes, seconds, status, n;
struct stat st;
char *path;
if (fd != 3) {
dup2(fd, 3);
}
- closefds(4);
+ for (n=4; n<OPEN_MAX; n++) {
+ close(n);
+ }
#ifdef TIOCNOTTY
if ((fd = open("/dev/tty", O_RDWR)) != -1) {
** Ruthlessly kill the child and anything
** else in its process group.
*/
- KILLPG(child_id, SIGKILL);
+ kill(-child_id, SIGKILL);
if (verbose)
verbose_printf(", timed-out; terminated\n");
return -1;
}
-static RETSIGTYPE
+static void
alrmser(int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL(SIGALRM, alrmser);
-#endif
-
longjmp(myctx, DONE);
}
if (first) {
first = 0;
if (strncmp(buffer, "From ", i)==0) {
- char *fp, *cp;
/*
** get copy of envelope information
** ("From " line)
*/
envelope = getcpy(buffer);
- /*
- ** Now create a "Return-Path:" line
- ** from the "From " line.
- */
- cp = strchr(fp = envelope + i, ' ');
- snprintf(buffer, sizeof(buffer),
- "Return-Path: %.*s\n",
- (int)(cp - fp), fp);
-
- /* Add Return-Path header to message */
- fputs(buffer, ffp);
- if (ferror(ffp)) {
- goto fputs_error;
- }
/* Put the delivery date in message */
fputs(ddate, ffp);
if (ferror(ffp)) {