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>