freebsd-nq/libntp/numtohost.c
Ollivier Robert ff717da2cf Import ntp 4.2.4p5 in the vendor code area. Far too many changes to list here,
please see CommitLog for detailed changes.

XXX html/build/hints/solaris.xtra.4095849 is not being imported as it conflicts
    with the detect-merge-conflict.sh script in our repo.
2008-08-18 14:26:05 +00:00

39 lines
834 B
C

/*
* 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;
}