1 #ifndef lint 2 static char sccsid[] = "@(#)uuname.c 5.2 (Berkeley) 01/22/85"; 3 #endif 4 5 #include "uucp.h" 6 #include <signal.h> 7 8 /******* 9 * uuname - return list of all remote systems 10 * recognized by uucp, or (with -l) the local 11 * uucp name. 12 * 13 * return codes: 0 | 1 (can't read) 14 */ 15 16 main(argc,argv) 17 char *argv[]; 18 int argc; 19 { 20 int ret; 21 int i; 22 int intrEXIT(); 23 FILE *np; 24 /* Increase buffers for s and prev. cornell!pavel */ 25 char prev[1000]; 26 char s[1000]; 27 28 ret = chdir(Spool); 29 ASSERT(ret >= 0, "CHDIR FAILED", Spool, ret); 30 strcpy(Progname, "uuname"); 31 signal(SIGILL, intrEXIT); 32 signal(SIGTRAP, intrEXIT); 33 signal(SIGIOT, intrEXIT); 34 signal(SIGEMT, intrEXIT); 35 signal(SIGFPE, intrEXIT); 36 signal(SIGBUS, intrEXIT); 37 signal(SIGSEGV, intrEXIT); 38 signal(SIGSYS, intrEXIT); 39 signal(SIGINT, intrEXIT); 40 signal(SIGHUP, intrEXIT); 41 signal(SIGQUIT, intrEXIT); 42 signal(SIGTERM, intrEXIT); 43 44 if(argc > 1 && argv[1][0] == '-' && argv[1][1] == 'l') { 45 uucpname(s); 46 printf("%s\n",s); 47 exit(0); 48 } 49 if(argc != 1) {printf("Usage: uuname [-l]\n"); exit(1);} 50 if((np = fopen(SYSFILE,"r")) == NULL) { 51 printf("%s (name file) protected\n",SYSFILE); 52 exit(1); 53 } 54 while ( cfgets(s,sizeof(s),np) != NULL ) { 55 for(i=0; s[i]!=' ' && s[i]!='\t'; i++) 56 ; 57 s[i]='\0'; 58 if (strcmp(s, prev) == SAME) 59 continue; 60 if(s[0]=='x' && s[1]=='x' && s[2]=='x') 61 continue; 62 printf("%s\n",s); 63 strcpy(prev, s); 64 } 65 66 exit(0); 67 } 68 intrEXIT(inter) 69 { 70 exit(inter); 71 } 72 73 cleanup(code) 74 int code; 75 { 76 exit(code); 77 } 78