| /* | 
 |  * Copyright (C) 2003 by Darren Reed. | 
 |  * | 
 |  * See the IPFILTER.LICENCE file for details on licencing. | 
 |  */ | 
 | #if !defined(lint) | 
 | static const char rcsid[] = "@(#)$Id$"; | 
 | #endif | 
 |  | 
 | #include "ipf.h" | 
 |  | 
 | void nat_setgroupmap(n) | 
 | ipnat_t *n; | 
 | { | 
 | 	if (n->in_outmsk == n->in_inmsk) | 
 | 		n->in_ippip = 1; | 
 | 	else if (n->in_flags & IPN_AUTOPORTMAP) { | 
 | 		n->in_ippip = ~ntohl(n->in_inmsk); | 
 | 		if (n->in_outmsk != 0xffffffff) | 
 | 			n->in_ippip /= (~ntohl(n->in_outmsk) + 1); | 
 | 		n->in_ippip++; | 
 | 		if (n->in_ippip == 0) | 
 | 			n->in_ippip = 1; | 
 | 		n->in_ppip = USABLE_PORTS / n->in_ippip; | 
 | 	} else { | 
 | 		n->in_space = USABLE_PORTS * ~ntohl(n->in_outmsk); | 
 | 		n->in_nip = 0; | 
 | 		if (!(n->in_ppip = n->in_pmin)) | 
 | 			n->in_ppip = 1; | 
 | 		n->in_ippip = USABLE_PORTS / n->in_ppip; | 
 | 	} | 
 | } |