BBN-Vax-TCP/src/libnet/hostname.c

#define	LIBN
#include "netlib.h"
#include "netmap.h"
#define	NULL	0
/*
 * convert network address to host name
 */
char *
hostname(addr)
netaddr	addr;
{
	register char *np;

	return (np = hostsyn(addr, 0))? np : NOHOSTNAME;
}

/*
 * return nth synonym associated with network address
 *	0 is primary, 1 - N are aliases
 */
char *
hostsyn(addr, syn)
netaddr	addr;
{
	register host_ent *hp;
	register char *lp;
	static char name[NETNAMSIZ+1];

	if (!_loadmap())
		return NULL;
	*name = '\0';
	if (hp = _ahostp(addr)) {
		lp = &_namebuf[hp->host_name];
		while (*lp && syn > 0) {
			while (*lp)
				++lp;
			++lp, --syn;
		}
		strcpy(name, lp);
	}
	_freemap();
	return *name? name : NULL;
}