/contrib/ntp/libntp/numtohost.c
https://bitbucket.org/freebsd/freebsd-head/ · C · 38 lines · 23 code · 6 blank · 9 comment · 6 complexity · 32b3bc59b3cab5535cbdc708131091c6 MD5 · raw file
- /*
- * numtohost - convert network number to host name.
- */
- #include "ntp_fp.h"
- #include "ntp_stdlib.h"
- #include "lib_strbuf.h"
- #define LOOPBACKNET 0x7f000000
- #define LOOPBACKHOST 0x7f000001
- #define LOOPBACKNETMASK 0xff000000
- char *
- numtohost(
- u_int32 netnum
- )
- {
- char *bp;
- struct hostent *hp;
- /*
- * This is really gross, but saves lots of hanging looking for
- * hostnames for the radio clocks. Don't bother looking up
- * addresses on the loopback network except for the loopback
- * host itself.
- */
- if ((((ntohl(netnum) & LOOPBACKNETMASK) == LOOPBACKNET)
- && (ntohl(netnum) != LOOPBACKHOST))
- || ((hp = gethostbyaddr((char *)&netnum, sizeof netnum, AF_INET))
- == 0))
- return numtoa(netnum);
-
- LIB_GETBUF(bp);
-
- bp[LIB_BUFLENGTH-1] = '\0';
- (void) strncpy(bp, hp->h_name, LIB_BUFLENGTH-1);
- return bp;
- }