xref: /csrg-svn/usr.bin/uucp/uupoll/uupoll.c (revision 25144)
113689Ssam #ifndef lint
2*25144Sbloom static char sccsid[] = "@(#)uupoll.c	5.5 (Berkeley) 10/09/85";
313689Ssam #endif
413689Ssam 
513689Ssam /*
613689Ssam  * Poll named system(s).
713689Ssam  *
813689Ssam  * The poll occurs even if recent attempts have failed,
913689Ssam  * but not if L.sys prohibits the call (e.g. wrong time of day).
1013689Ssam  *
1113689Ssam  * AUTHOR
1213689Ssam  *	Tom Truscott (rti!trt)
1313689Ssam  */
1413689Ssam 
1513689Ssam #include "uucp.h"
1613689Ssam 
1718625Sralph int TransferSucceeded = 1;
18*25144Sbloom struct timeb Now;
1918625Sralph 
2013689Ssam main(argc, argv)
2113689Ssam register int argc;
2213689Ssam register char **argv;
2313689Ssam {
2417844Sralph 	int ret;
2517844Sralph 	char wrkpre[MAXFULLNAME];
2617844Sralph 	char file[MAXFULLNAME];
2723688Sbloom 	char grade = 'A';
2818625Sralph 	int nocall = 0;
2917844Sralph 
3013689Ssam 	if (argc < 2) {
3118625Sralph 		fprintf(stderr, "usage: uupoll [-gX] [-n] system ...\n");
3213689Ssam 		cleanup(1);
3313689Ssam 	}
3413689Ssam 
3517844Sralph 	ret = chdir(Spool);
3617844Sralph 	ASSERT(ret >= 0, "CHDIR FAILED", Spool, ret);
3713689Ssam 	strcpy(Progname, "uupoll");
3813689Ssam 	uucpname(Myname);
3913689Ssam 
4013689Ssam 	for (--argc, ++argv; argc > 0; --argc, ++argv) {
4113689Ssam 		if (strcmp(argv[0], Myname) == SAME) {
4213689Ssam 			fprintf(stderr, "This *is* %s!\n", Myname);
4313689Ssam 			continue;
4413689Ssam 		}
4518625Sralph 		if (strncmp(argv[0],"-g",2) == SAME) {
4618625Sralph 			grade = argv[0][2];
4718625Sralph 			continue;
4818625Sralph 		}
4918625Sralph 		if (strcmp(argv[0],"-n") == SAME) {
5018625Sralph 			nocall++;
5118625Sralph 			continue;
5218625Sralph 		}
5313689Ssam 
5418625Sralph 		if (versys(&argv[0])) {
5513689Ssam 			fprintf(stderr, "%s: unknown system.\n", argv[0]);
5613689Ssam 			continue;
5713689Ssam 		}
5813689Ssam 		/* Remove any STST file that might stop the poll */
5923688Sbloom 		sprintf(wrkpre, "%s/LCK..%.*s", LOCKDIR, MAXBASENAME, argv[0]);
6017844Sralph 		if (access(wrkpre, 0) < 0)
6117844Sralph 			rmstat(argv[0]);
6223688Sbloom 		sprintf(wrkpre, "%c.%.*s", CMDPRE, SYSNSIZE, argv[0]);
6317844Sralph 		if (!iswrk(file, "chk", Spool, wrkpre)) {
6423688Sbloom 			sprintf(file, "%s/%c.%.*s%cPOLL", subdir(Spool, CMDPRE),
6523688Sbloom 				CMDPRE, SYSNSIZE, argv[0], grade);
6617844Sralph 			close(creat(file, 0666));
6717844Sralph 		}
6813689Ssam 		/* Attempt the call */
6918625Sralph 		if (!nocall)
7018625Sralph 			xuucico(argv[0]);
7113689Ssam 	}
7213689Ssam 	cleanup(0);
7313689Ssam }
7413689Ssam 
7513689Ssam cleanup(code)
7613689Ssam int code;
7713689Ssam {
7813689Ssam 	exit(code);
7913689Ssam }
80