1*48667Sbostic /*- 2*48667Sbostic * Copyright (c) 1985, 1988 The Regents of the University of California. 3*48667Sbostic * All rights reserved. 4*48667Sbostic * 5*48667Sbostic * %sccs.include.proprietary.c% 6*48667Sbostic */ 7*48667Sbostic 813685Ssam #ifndef lint 9*48667Sbostic char copyright[] = 10*48667Sbostic "@(#) Copyright (c) 1985, 1988 The Regents of the University of California.\n\ 11*48667Sbostic All rights reserved.\n"; 12*48667Sbostic #endif /* not lint */ 1313685Ssam 14*48667Sbostic #ifndef lint 15*48667Sbostic static char sccsid[] = "@(#)uulog.c 5.7 (Berkeley) 04/24/91"; 16*48667Sbostic #endif /* not lint */ 17*48667Sbostic 1813685Ssam #include "uucp.h" 1913685Ssam 2034173Srick struct timeb Now; 2134173Srick 2213685Ssam main(argc, argv) 2313685Ssam char *argv[]; 2413685Ssam { 2533961Srick #ifndef LOGBYSITE 2613685Ssam FILE *plogf; 2733961Srick char u[64], s[64]; 2833961Srick #endif /* !LOGBYSITE */ 2918625Sralph char *sys, *user; 3033961Srick int c; 3133961Srick extern char *optarg; 3233961Srick extern int optind; 3313685Ssam 3433961Srick char buf[BUFSIZ]; 3513685Ssam 3613685Ssam strcpy(Progname, "uulog"); 3718625Sralph sys = user = NULL; 3813685Ssam 3933961Srick while ((c = getopt(argc, argv, "s:u:")) != EOF) 4033961Srick switch (c) { 4113685Ssam case 's': 4233961Srick sys = optarg; 4323687Sbloom if (strlen(sys) > MAXBASENAME) 4423687Sbloom sys[MAXBASENAME] = '\0'; 4518625Sralph if (versys(&sys) != SUCCESS){ 4618625Sralph fprintf(stderr,"uulog: unknown system %s\n", sys); 4718625Sralph sys = NULL; 4818625Sralph } 4913685Ssam break; 5013685Ssam case 'u': 5133961Srick user = optarg; 5213685Ssam break; 5333961Srick case '?': 5413685Ssam default: 5533961Srick fprintf(stderr, "unknown flag %s\n", argv[optind-1]); 5633961Srick break; 5713685Ssam } 5813685Ssam 5918625Sralph if (user == NULL && sys == NULL) { 6018625Sralph fprintf(stderr, "usage: uulog [-u user] [-s sys]\n"); 6113685Ssam exit(1); 6213685Ssam } 6313685Ssam 6418625Sralph #ifdef LOGBYSITE 6518625Sralph if (chdir(SPOOL) < 0) { 6618625Sralph perror(SPOOL); 6718625Sralph exit(1); 6818625Sralph } 6918625Sralph /* this program is really obsolete, this is a rude backward compat */ 7018625Sralph if (user) { 7118625Sralph sprintf(buf, "exec cat LOG/uu*/* | egrep '^%s '", user); 7218625Sralph system(buf); 7318625Sralph } 7418625Sralph if (sys) { 7518625Sralph sprintf(buf,"exec cat LOG/uu*/%s", sys); 7618625Sralph system(buf); 7718625Sralph } 7818625Sralph #else !LOGBYSITE 7913685Ssam plogf = fopen(LOGFILE, "r"); 8033961Srick if (plogf == NULL) { 8133961Srick syslog(LOG_WARNING, "fopen(%s) failed: %m", LOGFILE); 8233961Srick cleanup(1); 8333961Srick } 8413685Ssam while (fgets(buf, BUFSIZ, plogf) != NULL) { 8513685Ssam sscanf(buf, "%s%s", u, s); 8633961Srick if (user != NULL && !(prefix(user, u) || prefix(u, user))) 8713685Ssam continue; 8833961Srick if (sys != NULL && !(prefix(sys, s) || prefix(s, sys))) 8913685Ssam continue; 9013685Ssam fputs(buf, stdout); 9113685Ssam fflush(stdout); 9213685Ssam } 9318625Sralph #endif !LOGBYSITE 9413685Ssam exit(0); 9513685Ssam } 9613685Ssam 9713685Ssam cleanup(code) 9813685Ssam int code; 9913685Ssam { 10013685Ssam exit(code); 10113685Ssam } 102