Annotation of 43BSD/etc/named/tools/nsquery.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char sccsid[] = "@(#)nsquery.c  4.1 (Berkeley) 5/12/86";
        !             3: #endif
        !             4: 
        !             5: /*
        !             6:  * Copyright (c) 1986 Regents of the University of California
        !             7:  *     All Rights Reserved
        !             8:  */
        !             9: 
        !            10: #include <stdio.h>
        !            11: #include <sys/types.h>
        !            12: #include <arpa/nameser.h>
        !            13: #include <netdb.h>
        !            14: #include <sys/socket.h>
        !            15: #include <netinet/in.h>
        !            16: #include <resolv.h>
        !            17: 
        !            18: struct state orig;
        !            19: extern struct state _res;
        !            20: 
        !            21: main(c, v)
        !            22:        char **v;
        !            23: {
        !            24:        char h[32];
        !            25:        register struct hostent *hp;
        !            26:        register char *s;
        !            27: 
        !            28:        gethostname(h, 32);
        !            29:        s = h;
        !            30:        if (c < 2) {
        !            31:                fprintf(stderr, "Usage: lookup host [server]\n");
        !            32:                exit(1);
        !            33:        }
        !            34:        if (c > 2)
        !            35:                s = v[2];
        !            36: 
        !            37:        hp = gethostbyname(s);
        !            38:        if (hp == NULL) {
        !            39:                hperror(h_errno);
        !            40:                exit(1);
        !            41:        }
        !            42:        printanswer(hp);
        !            43: 
        !            44:        _res.nsaddr.sin_addr = *(struct in_addr *)hp->h_addr;
        !            45:        _res.options &= ~RES_DEFNAMES;
        !            46: 
        !            47:        hp = gethostbyname(v[1]);
        !            48:        if (hp == NULL) {
        !            49:                hperror(h_errno);
        !            50:                exit(1);
        !            51:        }
        !            52:        printanswer(hp);
        !            53:        exit(0);
        !            54: }
        !            55: 
        !            56: printanswer(hp)
        !            57:        register struct hostent *hp;
        !            58: {
        !            59:        register char **cp;
        !            60:        extern char *inet_ntoa();
        !            61: 
        !            62:        printf("Name: %s\n", hp->h_name);
        !            63:        printf("Address: %s\n", inet_ntoa(*(struct in_addr *)hp->h_addr));
        !            64:        printf("Aliases:");
        !            65:        for (cp = hp->h_aliases; cp && *cp && **cp; cp++)
        !            66:                printf(" %s", *cp);
        !            67:        printf("\n\n");
        !            68: }
        !            69: 
        !            70: hperror(errno) 
        !            71: int errno;
        !            72: {
        !            73: switch(errno) {
        !            74:        case HOST_NOT_FOUND:
        !            75:                fprintf(stderr,"Host not found.\n");
        !            76:                break;
        !            77:        case TRY_AGAIN:
        !            78:                fprintf(stderr,"Host not found, try again.\n");
        !            79:                break;
        !            80:        case NO_RECOVERY:
        !            81:                fprintf(stderr,"No recovery, Host not found.\n");
        !            82:                break;
        !            83:        case NO_ADDRESS:
        !            84:                fprintf(stderr,"No Address, look for MF record.\n");
        !            85:                break;
        !            86:        }
        !            87: }
        !            88: 

unix.superglobalmegacorp.com

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