113687Ssam #ifndef lint 2*17844Sralph static char sccsid[] = "@(#)uuname.c 5.2 (Berkeley) 01/22/85"; 313687Ssam #endif 413687Ssam 513687Ssam #include "uucp.h" 613687Ssam #include <signal.h> 713687Ssam 813687Ssam /******* 913687Ssam * uuname - return list of all remote systems 1013687Ssam * recognized by uucp, or (with -l) the local 1113687Ssam * uucp name. 1213687Ssam * 1313687Ssam * return codes: 0 | 1 (can't read) 1413687Ssam */ 1513687Ssam 1613687Ssam main(argc,argv) 1713687Ssam char *argv[]; 1813687Ssam int argc; 1913687Ssam { 20*17844Sralph int ret; 2113687Ssam int i; 2213687Ssam int intrEXIT(); 2313687Ssam FILE *np; 2413687Ssam /* Increase buffers for s and prev. cornell!pavel */ 2513687Ssam char prev[1000]; 2613687Ssam char s[1000]; 2713687Ssam 28*17844Sralph ret = chdir(Spool); 29*17844Sralph ASSERT(ret >= 0, "CHDIR FAILED", Spool, ret); 3013687Ssam strcpy(Progname, "uuname"); 3113687Ssam signal(SIGILL, intrEXIT); 3213687Ssam signal(SIGTRAP, intrEXIT); 3313687Ssam signal(SIGIOT, intrEXIT); 3413687Ssam signal(SIGEMT, intrEXIT); 3513687Ssam signal(SIGFPE, intrEXIT); 3613687Ssam signal(SIGBUS, intrEXIT); 3713687Ssam signal(SIGSEGV, intrEXIT); 3813687Ssam signal(SIGSYS, intrEXIT); 3913687Ssam signal(SIGINT, intrEXIT); 4013687Ssam signal(SIGHUP, intrEXIT); 4113687Ssam signal(SIGQUIT, intrEXIT); 4213687Ssam signal(SIGTERM, intrEXIT); 4313687Ssam 44*17844Sralph if(argc > 1 && argv[1][0] == '-' && argv[1][1] == 'l') { 4513687Ssam uucpname(s); 4613687Ssam printf("%s\n",s); 4713687Ssam exit(0); 4813687Ssam } 4913687Ssam if(argc != 1) {printf("Usage: uuname [-l]\n"); exit(1);} 5013687Ssam if((np = fopen(SYSFILE,"r")) == NULL) { 5113687Ssam printf("%s (name file) protected\n",SYSFILE); 5213687Ssam exit(1); 5313687Ssam } 5413687Ssam while ( cfgets(s,sizeof(s),np) != NULL ) { 5513687Ssam for(i=0; s[i]!=' ' && s[i]!='\t'; i++) 5613687Ssam ; 5713687Ssam s[i]='\0'; 5813687Ssam if (strcmp(s, prev) == SAME) 5913687Ssam continue; 6013687Ssam if(s[0]=='x' && s[1]=='x' && s[2]=='x') 6113687Ssam continue; 6213687Ssam printf("%s\n",s); 6313687Ssam strcpy(prev, s); 6413687Ssam } 6513687Ssam 6613687Ssam exit(0); 6713687Ssam } 6813687Ssam intrEXIT(inter) 6913687Ssam { 7013687Ssam exit(inter); 7113687Ssam } 72*17844Sralph 73*17844Sralph cleanup(code) 74*17844Sralph int code; 75*17844Sralph { 76*17844Sralph exit(code); 77*17844Sralph } 78