ina.s_addr = htonl (*(u_int32_t *)np->n_net);
ina.s_addr = htonl (np->n_net);
ip_addr_check(addr, addrs)    u_int32_t addr;    struct wordlist *addrs;{    u_int32_t mask, ah;    struct in_addr ina;    int accept, r = 1;    char *ptr_word, *ptr_mask;    struct hostent *hp;    struct netent *np;    /* don't allow loopback or multicast address */    if (bad_ip_adrs(addr))	return 0;    if (addrs == NULL)	return 1;		/* no restriction */    for (; addrs != NULL; addrs = addrs->next) {	/* "-" means no addresses authorized */	ptr_word = addrs->word;	if (strcmp(ptr_word, "-") == 0)	    break;	accept = 1;	if (*ptr_word == '!') {	    accept = 0;	    ++ptr_word;	}	mask = ~ (u_int32_t) 0;	ptr_mask = strchr (ptr_word, '/');	if (ptr_mask != NULL) {	    int bit_count;	    bit_count = (int) strtol (ptr_mask+1, (char **) 0, 10);	    if (bit_count <= 0 || bit_count > 32) {		syslog (LOG_WARNING,			"invalid address length %s in auth. address list",			ptr_mask);		continue;	    }	    *ptr_mask = '\0';	    mask <<= 32 - bit_count;	}	hp = gethostbyname(ptr_word);	if (hp != NULL && hp->h_addrtype == AF_INET) {	    ina.s_addr = *(u_int32_t *)hp->h_addr;	    mask = ~ (u_int32_t) 0;	/* are we sure we want this? */	} else {	    np = getnetbyname (ptr_word);	    if (np != NULL && np->n_addrtype == AF_INET)		ina.s_addr = htonl (*(u_int32_t *)np->n_net);	    else		r = inet_aton (ptr_word, &ina);	    if (ptr_mask == NULL) {		/* calculate appropriate mask for net */		ah = ntohl(ina.s_addr);		if (IN_CLASSA(ah))		    mask = IN_CLASSA_NET;		else if (IN_CLASSB(ah))		    mask = IN_CLASSB_NET;		else if (IN_CLASSC(ah))		    mask = IN_CLASSC_NET;	    }	}	if (ptr_mask != NULL)	    *ptr_mask = '/';	if (r == 0)	    syslog (LOG_WARNING,		    "unknown host %s in auth. address list",		    addrs->word);	else	    if (((addr ^ ina.s_addr) & htonl(mask)) == 0)		return accept;    }    return 0;			/* not in list => can't have it */}