Annotation of researchv8dc/cmd/inet/libin/in_host.c, revision 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.