Annotation of embedaddon/ntp/libntp/numtohost.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * numtohost - convert network number to host name.
        !             3:  */
        !             4: #include <config.h>
        !             5: 
        !             6: #include <sys/types.h>
        !             7: #ifdef HAVE_NETINET_IN_H
        !             8: #include <netinet/in.h>                /* ntohl */
        !             9: #endif
        !            10: 
        !            11: #include "ntp_fp.h"
        !            12: #include "ntp_stdlib.h"
        !            13: #include "lib_strbuf.h"
        !            14: 
        !            15: #define        LOOPBACKNET     0x7f000000
        !            16: #define        LOOPBACKHOST    0x7f000001
        !            17: #define        LOOPBACKNETMASK 0xff000000
        !            18: 
        !            19: char *
        !            20: numtohost(
        !            21:        u_int32 netnum
        !            22:        )
        !            23: {
        !            24:        char *bp;
        !            25:        struct hostent *hp;
        !            26: 
        !            27:        /*
        !            28:         * This is really gross, but saves lots of hanging looking for
        !            29:         * hostnames for the radio clocks.  Don't bother looking up
        !            30:         * addresses on the loopback network except for the loopback
        !            31:         * host itself.
        !            32:         */
        !            33:        if ((((ntohl(netnum) & LOOPBACKNETMASK) == LOOPBACKNET)
        !            34:             && (ntohl(netnum) != LOOPBACKHOST))
        !            35:            || ((hp = gethostbyaddr((char *)&netnum, sizeof netnum, AF_INET))
        !            36:                == 0))
        !            37:            return numtoa(netnum);
        !            38:        
        !            39:        LIB_GETBUF(bp);
        !            40:        
        !            41:        bp[LIB_BUFLENGTH-1] = '\0';
        !            42:        (void) strncpy(bp, hp->h_name, LIB_BUFLENGTH-1);
        !            43:        return bp;
        !            44: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>