X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Frcvtty.c;h=1e2a3efcc0ffc33d44a601428b913aff07fbdf8d;hp=b3c1d52a8c051c752d1356a52a760cbdffb847f6;hb=714b5c530ece27ea2835a313013f5b770163403c;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4 diff --git a/uip/rcvtty.c b/uip/rcvtty.c index b3c1d52..1e2a3ef 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -77,14 +77,14 @@ char *getusername(void); /* ** static prototypes */ -static RETSIGTYPE alrmser (int); -static int message_fd (char **); -static int header_fd (void); -static void alert (char *, int); +static RETSIGTYPE alrmser(int); +static int message_fd(char **); +static int header_fd(void); +static void alert(char *, int); int -main (int argc, char **argv) +main(int argc, char **argv) { int md, vecp = 0; char *cp, *user, buf[BUFSIZ], tty[BUFSIZ]; @@ -99,34 +99,34 @@ main (int argc, char **argv) #ifdef LOCALE setlocale(LC_ALL, ""); #endif - invo_name = r1bindex (argv[0], '/'); + invo_name = r1bindex(argv[0], '/'); /* read user profile/context */ context_read(); - mts_init (invo_name); - arguments = getarguments (invo_name, argc, argv, 1); + mts_init(invo_name); + arguments = getarguments(invo_name, argc, argv, 1); argp = arguments; while ((cp = *argp++)) { if (*cp == '-') { - switch (smatch (++cp, switches)) { + switch (smatch(++cp, switches)) { case AMBIGSW: - ambigsw (cp, switches); - done (1); + ambigsw(cp, switches); + done(1); case UNKWNSW: vec[vecp++] = --cp; continue; case HELPSW: - snprintf (buf, sizeof(buf), + snprintf(buf, sizeof(buf), "%s [command ...]", invo_name); - print_help (buf, switches, 1); - done (1); + print_help(buf, switches, 1); + done(1); case VERSIONSW: print_version(invo_name); - done (1); + done(1); case BIFFSW: biff = 1; @@ -134,12 +134,12 @@ main (int argc, char **argv) case FORMSW: if (!(form = *argp++) || *form == '-') - adios (NULL, "missing argument to %s", argp[-2]); + adios(NULL, "missing argument to %s", argp[-2]); format = NULL; continue; case FMTSW: if (!(format = *argp++) || *format == '-') - adios (NULL, "missing argument to %s", argp[-2]); + adios(NULL, "missing argument to %s", argp[-2]); form = NULL; continue; @@ -167,8 +167,8 @@ main (int argc, char **argv) } vec[vecp] = 0; - if ((md = vecp ? message_fd (vec) : header_fd ()) == NOTOK) - exit (RCV_MBX); + if ((md = vecp ? message_fd(vec) : header_fd()) == NOTOK) + exit(RCV_MBX); user = getusername(); @@ -180,44 +180,44 @@ main (int argc, char **argv) utp->ut_type == USER_PROCESS && #endif utp->ut_name[0] != 0 && utp->ut_line[0] != 0 - && strncmp (user, utp->ut_name, + && strncmp(user, utp->ut_name, sizeof(utp->ut_name)) == 0) { - strncpy (tty, utp->ut_line, sizeof(utp->ut_line)); - alert (tty, md); + strncpy(tty, utp->ut_line, sizeof(utp->ut_line)); + alert(tty, md); } } endutent(); #else - if ((uf = fopen (UTMP_FILE, "r")) == NULL) - exit (RCV_MBX); - while (fread ((char *) &ut, sizeof(ut), 1, uf) == 1) - if (ut.ut_name[0] != 0 - && strncmp (user, ut.ut_name, - sizeof(ut.ut_name)) == 0) { - strncpy (tty, ut.ut_line, sizeof(ut.ut_line)); - alert (tty, md); + if ((uf = fopen(UTMP_FILE, "r")) == NULL) + exit(RCV_MBX); + while (fread((char *) &ut, sizeof(ut), 1, uf) == 1) + if (ut.ut_name[0] != 0 && + strncmp(user, ut.ut_name, sizeof(ut.ut_name)) + == 0) { + strncpy(tty, ut.ut_line, sizeof(ut.ut_line)); + alert(tty, md); } - fclose (uf); + fclose(uf); #endif - exit (RCV_MOK); + exit(RCV_MOK); return 0; /* dead code to satisfy the compiler */ } static RETSIGTYPE -alrmser (int i) +alrmser(int i) { #ifndef RELIABLE_SIGNALS - SIGNAL (SIGALRM, alrmser); + SIGNAL(SIGALRM, alrmser); #endif - longjmp (myctx, 1); + longjmp(myctx, 1); } static int -message_fd (char **vec) +message_fd(char **vec) { pid_t child_id; int bytes, fd, seconds; @@ -225,23 +225,23 @@ message_fd (char **vec) struct stat st; #ifdef HAVE_MKSTEMP - fd = mkstemp (strncpy (tmpfil, "/tmp/rcvttyXXXXX", sizeof(tmpfil))); + fd = mkstemp(strncpy(tmpfil, "/tmp/rcvttyXXXXX", sizeof(tmpfil))); #else - unlink (mktemp (strncpy (tmpfil, "/tmp/rcvttyXXXXX", sizeof(tmpfil)))); - if ((fd = open (tmpfil, O_RDWR | O_CREAT | O_TRUNC, 0600)) == NOTOK) - return header_fd (); + unlink(mktemp(strncpy(tmpfil, "/tmp/rcvttyXXXXX", sizeof(tmpfil)))); + if ((fd = open(tmpfil, O_RDWR | O_CREAT | O_TRUNC, 0600)) == NOTOK) + return header_fd(); #endif - unlink (tmpfil); + unlink(tmpfil); if ((child_id = vfork()) == NOTOK) { /* fork error */ - close (fd); - return header_fd (); + close(fd); + return header_fd(); } else if (child_id) { /* parent process */ - if (!setjmp (myctx)) { - SIGNAL (SIGALRM, alrmser); - bytes = fstat(fileno (stdin), &st) != NOTOK ? + if (!setjmp(myctx)) { + SIGNAL(SIGALRM, alrmser); + bytes = fstat(fileno(stdin), &st) != NOTOK ? (int) st.st_size : 100; /* amount of time to wait depends on message size */ @@ -254,11 +254,11 @@ message_fd (char **vec) } else { seconds = (bytes / 60) + 300; } - alarm ((unsigned int) seconds); + alarm((unsigned int) seconds); pidwait(child_id, OK); - alarm (0); + alarm(0); - if (fstat (fd, &st) != NOTOK && st.st_size > (off_t) 0) + if (fstat(fd, &st) != NOTOK && st.st_size > (off_t) 0) return fd; } else { /* @@ -267,24 +267,24 @@ message_fd (char **vec) */ KILLPG(child_id, SIGKILL); } - close (fd); - return header_fd (); + close(fd); + return header_fd(); } /* child process */ - rewind (stdin); - if (dup2 (fd, 1) == NOTOK || dup2 (fd, 2) == NOTOK) - _exit (-1); - closefds (3); - setpgid ((pid_t) 0, getpid ()); /* put in own process group */ - execvp (vec[0], vec); - _exit (-1); + rewind(stdin); + if (dup2(fd, 1) == NOTOK || dup2(fd, 2) == NOTOK) + _exit(-1); + closefds(3); + setpgid((pid_t) 0, getpid()); /* put in own process group */ + execvp(vec[0], vec); + _exit(-1); return 1; /* dead code to satisfy compiler */ } static int -header_fd (void) +header_fd(void) { int fd; char *nfs; @@ -292,58 +292,57 @@ header_fd (void) tfile = m_mktemp2(NULL, invo_name, &fd, NULL); if (tfile == NULL) return NOTOK; - unlink (tfile); + unlink(tfile); - rewind (stdin); + rewind(stdin); /* get new format string */ - nfs = new_fs (form, format, SCANFMT); - scan (stdin, 0, 0, nfs, width, 0, 0, NULL, 0L, 0); + nfs = new_fs(form, format, SCANFMT); + scan(stdin, 0, 0, nfs, width, 0, 0, NULL, 0L, 0); if (newline) - write (fd, "\n\r", 2); - write (fd, scanl, strlen (scanl)); + write(fd, "\n\r", 2); + write(fd, scanl, strlen(scanl)); if (bell) - write (fd, "\007", 1); + write(fd, "\007", 1); return fd; } static void -alert (char *tty, int md) +alert(char *tty, int md) { int i, td, mask; char buffer[BUFSIZ], ttyspec[BUFSIZ]; struct stat st; - snprintf (ttyspec, sizeof(ttyspec), "/dev/%s", tty); + snprintf(ttyspec, sizeof(ttyspec), "/dev/%s", tty); /* ** The mask depends on whether we are checking for ** write permission based on `biff' or `mesg'. */ mask = biff ? S_IEXEC : (S_IWRITE >> 3); - if (stat (ttyspec, &st) == NOTOK || (st.st_mode & mask) == 0) + 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 (!setjmp(myctx)) { + SIGNAL(SIGALRM, alrmser); + alarm(2); + td = open(ttyspec, O_WRONLY); + alarm(0); if (td == NOTOK) return; } else { - alarm (0); + alarm(0); return; } - lseek (md, (off_t) 0, SEEK_SET); + lseek(md, (off_t) 0, SEEK_SET); - while ((i = read (md, buffer, sizeof(buffer))) > 0) - if (write (td, buffer, i) != i) + while ((i = read(md, buffer, sizeof(buffer))) > 0) + if (write(td, buffer, i) != i) break; - close (td); + close(td); } -