1*2609Sjojemann /* 2*2609Sjojemann * Copyright (C) 1993-2001 by Darren Reed. 3*2609Sjojemann * 4*2609Sjojemann * See the IPFILTER.LICENCE file for details on licencing. 5*2609Sjojemann * 6*2609Sjojemann * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7*2609Sjojemann * Use is subject to license terms. 8*2609Sjojemann */ 9*2609Sjojemann 10*2609Sjojemann #pragma ident "%Z%%M% %I% %E% SMI" 11*2609Sjojemann 12*2609Sjojemann #include "ipf.h" 13*2609Sjojemann nat_setgroupmap(n)14*2609Sjojemannvoid nat_setgroupmap(n) 15*2609Sjojemann ipnat_t *n; 16*2609Sjojemann { 17*2609Sjojemann if (n->in_outmsk == n->in_inmsk) 18*2609Sjojemann n->in_ippip = 1; 19*2609Sjojemann else if (n->in_flags & IPN_AUTOPORTMAP) { 20*2609Sjojemann n->in_ippip = ~ntohl(n->in_inmsk); 21*2609Sjojemann if (n->in_outmsk != 0xffffffff) 22*2609Sjojemann n->in_ippip /= (~ntohl(n->in_outmsk) + 1); 23*2609Sjojemann n->in_ippip++; 24*2609Sjojemann if (n->in_ippip == 0) 25*2609Sjojemann n->in_ippip = 1; 26*2609Sjojemann n->in_ppip = USABLE_PORTS / n->in_ippip; 27*2609Sjojemann } else { 28*2609Sjojemann n->in_space = USABLE_PORTS * ~ntohl(n->in_outmsk); 29*2609Sjojemann n->in_nip = 0; 30*2609Sjojemann if (!(n->in_ppip = n->in_pmin)) 31*2609Sjojemann n->in_ppip = 1; 32*2609Sjojemann n->in_ippip = USABLE_PORTS / n->in_ppip; 33*2609Sjojemann } 34*2609Sjojemann } 35