Annotation of researchv8dc/cmd/inet/libin/in_host.c, revision 1.1.1.1

1.1       root        1: #include <sys/inet/in.h>
                      2: #include <stdio.h>
                      3: #include "config.h"
                      4: 
                      5: static char *files[] = {
                      6:        HOSTS,
                      7:        NETWORKS,
                      8: };
                      9: #define NFILES (sizeof(files) / sizeof(files[0]))
                     10: 
                     11: /* imported */
                     12: extern char *in_getw();
                     13: 
                     14: char *
                     15: in_host(addr)
                     16: in_addr addr;
                     17: {
                     18:        char buf[512], *p;
                     19:        static char b[32];
                     20:        int x, i;
                     21:        FILE *fp;
                     22:        unsigned char *xp;
                     23: 
                     24:        xp = (unsigned char *) &addr;
                     25:        for(i = 0 ; i < NFILES; i++){
                     26:                if((fp = fopen(files[i], "r")) == 0){
                     27:                        perror(files[i]);
                     28:                        continue;
                     29:                }
                     30:        
                     31:                while(fgets(buf, sizeof(buf), fp)){
                     32:                        if(buf[0] == '\n' || buf[0] == '#')
                     33:                                continue;
                     34:                        if((p = in_getw(buf, b)) == 0)
                     35:                                continue;
                     36:                        x = in_address(b);
                     37:                        if(x == 0)
                     38:                                continue;
                     39:                        if((p = in_getw(p, b)) == 0)
                     40:                                continue;
                     41:                        if(x == addr){
                     42:                                fclose(fp);
                     43:                                return(b);
                     44:                        }
                     45:                }
                     46:                fclose(fp);
                     47:        }
                     48:        sprintf(b, "%d.%d.%d.%d", xp[3], xp[2], xp[1], xp[0]);
                     49:        return(b);
                     50: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.