X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8a14191c0a0ad15bb8f35b49748c75c1e0a8c2f4..63621a81d16ab743de6b57d47578a9a2c670ad22:/uip/rcvtty.c diff --git a/uip/rcvtty.c b/uip/rcvtty.c index c38dd061..101aa5ab 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -1,6 +1,4 @@ - -/* - * rcvtty.c -- a rcvmail program (a lot like rcvalert) handling IPC ttys +/* rcvtty.c -- a rcvmail program (a lot like rcvalert) handling IPC ttys * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -19,6 +17,8 @@ #include #include #include +#include +#include "sbr/m_mktemp.h" #include #ifdef HAVE_GETUTXENT @@ -58,11 +58,6 @@ static int width = -1; static char *form = NULL; static char *format = NULL; -/* - * external prototypes - */ -char *getusername(void); - /* * static prototypes */ @@ -219,7 +214,7 @@ message_fd (char **vec) pidwait(child_id, OK); alarm (0); - if (fstat (fd, &st) != NOTOK && st.st_size > (off_t) 0) + if (fstat (fd, &st) != NOTOK && st.st_size > 0) return fd; } else { /* @@ -237,7 +232,7 @@ message_fd (char **vec) if (dup2 (fd, 1) == NOTOK || dup2 (fd, 2) == NOTOK) _exit (-1); closefds (3); - setpgid ((pid_t) 0, getpid ()); /* put in own process group */ + setpgid(0, getpid()); /* put in own process group */ if (execvp (vec[0], vec) == NOTOK) { _exit (-1); } @@ -303,19 +298,18 @@ alert (char *tty, int md) if (stat (ttyspec, &st) == NOTOK || (st.st_mode & mask) == 0) return; - if (!setjmp (myctx)) { - SIGNAL (SIGALRM, alrmser); - alarm (2); - td = open (ttyspec, O_WRONLY); - alarm (0); - if (td == NOTOK) - return; - } else { + if (setjmp (myctx)) { alarm (0); return; } - - lseek (md, (off_t) 0, SEEK_SET); + SIGNAL (SIGALRM, alrmser); + alarm (2); + td = open (ttyspec, O_WRONLY); + alarm (0); + if (td == NOTOK) + return; + + lseek(md, 0, SEEK_SET); while ((i = read (md, buffer, sizeof(buffer))) > 0) if (write (td, buffer, i) != i)