rem: if (ip->af==he->h_addrtype){
add: if (he && ip->af==he->h_addrtype){
context: int check_address(struct ip_addr* ip, char *name, int resolver){	struct hostent* he;	int i;	/* maybe we are lucky and name it's an ip */	if (strcmp(name, ip_addr2a(ip))==0)		return 0;	if (resolver&DO_DNS){		DBG("check_address: doing dns lookup\n");		/* try all names ips */		he=resolvehost(name);		if (ip->af==he->h_addrtype){			for(i=0;he && he->h_addr_list[i];i++){				if ( memcmp(&he->h_addr_list[i], ip->u.addr, ip->len)==0)					return 0;			}		}	}	if (resolver&DO_REV_DNS){		DBG("check_address: doing rev. dns lookup\n");		/* try reverse dns */		he=rev_resolvehost(ip);		if (he && (strcmp(he->h_name, name)==0))			return 0;		for (i=0; he && he->h_aliases[i];i++){			if (strcmp(he->h_aliases[i],name)==0)				return 0;		}	}	return -1;}