|
|
1.1 ! root 1: #include <sys/inet/in.h> ! 2: #include <stdio.h> ! 3: #include <ctype.h> ! 4: #include "config.h" ! 5: ! 6: static char *files[] = { ! 7: "/usr/ipc/lib/inaddr.local", ! 8: "/usr/ipc/lib/inaddr", ! 9: "/usr/inet/lib/hosts", ! 10: "/usr/inet/lib/networks", ! 11: }; ! 12: #define NFILES (sizeof(files) / sizeof(files[0])) ! 13: ! 14: extern char *in_getw(); ! 15: ! 16: /* translate a host name into an address */ ! 17: in_addr ! 18: in_address(host) ! 19: char *host; ! 20: { ! 21: FILE *fp; ! 22: char buf[512], b[512], *p; ! 23: in_addr addr, in_aton(); ! 24: int i; ! 25: ! 26: if(isdigit(host[0])) ! 27: return(in_aton(host)); ! 28: for(i = 0; i < NFILES; i++){ ! 29: if((fp = fopen(files[i], "r")) == 0){ ! 30: continue; ! 31: } ! 32: while(fgets(buf, sizeof(buf), fp)){ ! 33: if(buf[0] == '\n' || buf[0] == '#') ! 34: continue; ! 35: if((p = in_getw(buf, b)) == 0) ! 36: continue; ! 37: addr = in_aton(b); ! 38: while(p = in_getw(p, b)){ ! 39: if(strcmp(b, host) == 0){ ! 40: fclose(fp); ! 41: return(addr); ! 42: } ! 43: } ! 44: } ! 45: fclose(fp); ! 46: } ! 47: return(0); ! 48: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.