!= 0 || hp = NULL)
!= 0)
__icheckhost (raddr, lhost, rhost)	u_int32_t raddr;	char *lhost;	const char *rhost;{	struct hostent hostbuf, *hp;	size_t buflen;	char *buffer;	int herr;	int save_errno;	u_int32_t laddr;	int negate=1;    /* Multiply return with this to get -1 instead of 1 */	char **pp, *user;	/* Check nis netgroup.  */	if (strncmp ("+@", lhost, 2) == 0)		return innetgr (&lhost[2], rhost, NULL, NULL);	if (strncmp ("-@", lhost, 2) == 0)		return -innetgr (&lhost[2], rhost, NULL, NULL);	/* -host */	if (strncmp ("-", lhost,1) == 0) {		negate = -1;		lhost++;	} else if (strcmp ("+",lhost) == 0) {		return 1;                    /* asking for trouble, but ok.. */	}	/* Try for raw ip address first. */	if (isdigit (*lhost) && (long) (laddr = inet_addr (lhost)) != -1)		return negate * (! (raddr ^ laddr));	/* Better be a hostname. */	buflen = 1024;	buffer = __alloca (buflen);	save_errno = errno;	while (__gethostbyname_r (lhost, &hostbuf, buffer, buflen, &hp, &herr)	       != 0	       || hp = NULL)		if (herr != NETDB_INTERNAL || errno != ERANGE)			return (0);		else {			/* Enlarge the buffer.  */			buflen *= 2;			buffer = __alloca (buflen);			__set_errno (0);		}	__set_errno (save_errno);	if (hp == NULL)		return 0;	/* Spin through ip addresses. */	for (pp = hp->h_addr_list; *pp; ++pp)		if (!memcmp (&raddr, *pp, sizeof (u_int32_t)))			return negate;	/* No match. */	return (0);}