xref: /csrg-svn/usr.bin/uucp/uuname/uuname.c (revision 25143)
113687Ssam #ifndef lint
2*25143Sbloom static char sccsid[] = "@(#)uuname.c	5.3 (Berkeley) 10/09/85";
313687Ssam #endif
413687Ssam 
513687Ssam #include "uucp.h"
613687Ssam #include <signal.h>
713687Ssam 
8*25143Sbloom /*
9*25143Sbloom  *      return list of all remote systems
10*25143Sbloom  *	recognized by uucp, or  (with -l) the local  uucp name.
1113687Ssam  *
1213687Ssam  *      return codes: 0 | 1  (can't read)
1313687Ssam  */
14*25143Sbloom 
15*25143Sbloom struct timeb Now;
1613687Ssam 
1713687Ssam main(argc,argv)
1813687Ssam char *argv[];
1913687Ssam int argc;
2013687Ssam {
2117844Sralph 	int ret;
2213687Ssam 	int i;
2313687Ssam 	int intrEXIT();
2413687Ssam 	FILE *np;
2513687Ssam /* Increase buffers for s and prev.  cornell!pavel */
2613687Ssam 	char prev[1000];
2713687Ssam 	char s[1000];
2813687Ssam 
2917844Sralph 	ret = chdir(Spool);
3017844Sralph 	ASSERT(ret >= 0, "CHDIR FAILED", Spool, ret);
3113687Ssam 	strcpy(Progname, "uuname");
3213687Ssam 	signal(SIGILL, intrEXIT);
3313687Ssam 	signal(SIGTRAP, intrEXIT);
3413687Ssam 	signal(SIGIOT, intrEXIT);
3513687Ssam 	signal(SIGEMT, intrEXIT);
3613687Ssam 	signal(SIGFPE, intrEXIT);
3713687Ssam 	signal(SIGBUS, intrEXIT);
3813687Ssam 	signal(SIGSEGV, intrEXIT);
3913687Ssam 	signal(SIGSYS, intrEXIT);
4013687Ssam 	signal(SIGINT, intrEXIT);
4113687Ssam 	signal(SIGHUP, intrEXIT);
4213687Ssam 	signal(SIGQUIT, intrEXIT);
4313687Ssam 	signal(SIGTERM, intrEXIT);
4413687Ssam 
4517844Sralph 	if(argc > 1 && argv[1][0] == '-' && argv[1][1] == 'l') {
4613687Ssam 		uucpname(s);
4713687Ssam 		printf("%s\n",s);
4813687Ssam 		exit(0);
4913687Ssam 	}
5013687Ssam         if(argc != 1) {printf("Usage: uuname [-l]\n"); exit(1);}
5113687Ssam 	if((np = fopen(SYSFILE,"r")) == NULL) {
5213687Ssam 		printf("%s (name file) protected\n",SYSFILE);
5313687Ssam 		exit(1);
5413687Ssam 	}
5513687Ssam 	while ( cfgets(s,sizeof(s),np) != NULL ) {
5613687Ssam 		for(i=0; s[i]!=' ' && s[i]!='\t'; i++)
5713687Ssam 			;
5813687Ssam 		s[i]='\0';
5913687Ssam 		if (strcmp(s, prev) == SAME)
6013687Ssam 			continue;
6113687Ssam 		if(s[0]=='x' && s[1]=='x' && s[2]=='x')
6213687Ssam 			continue;
6313687Ssam 		printf("%s\n",s);
6413687Ssam 		strcpy(prev, s);
6513687Ssam 	}
6613687Ssam 
6713687Ssam 	exit(0);
6813687Ssam }
6913687Ssam intrEXIT(inter)
7013687Ssam {
7113687Ssam 	exit(inter);
7213687Ssam }
7317844Sralph 
7417844Sralph cleanup(code)
7517844Sralph int code;
7617844Sralph {
7717844Sralph 	exit(code);
7817844Sralph }
79