1*41edb306SCy Schubert /* 2*41edb306SCy Schubert * Copyright (C) 2012 by Darren Reed. 3*41edb306SCy Schubert * 4*41edb306SCy Schubert * See the IPFILTER.LICENCE file for details on licencing. 5*41edb306SCy Schubert * 6*41edb306SCy Schubert * Added redirect stuff and a variety of bug fixes. (mcn@EnGarde.com) 7*41edb306SCy Schubert */ 8*41edb306SCy Schubert 9*41edb306SCy Schubert #include "ipf.h" 10*41edb306SCy Schubert #include "kmem.h" 11*41edb306SCy Schubert 12*41edb306SCy Schubert 13*41edb306SCy Schubert #if !defined(lint) 14*41edb306SCy Schubert static const char rcsid[] = "@(#)$Id: printnataddr.c,v 1.4.2.2 2012/07/22 08:04:24 darren_r Exp $"; 15*41edb306SCy Schubert #endif 16*41edb306SCy Schubert 17*41edb306SCy Schubert 18*41edb306SCy Schubert void 19*41edb306SCy Schubert printnataddr(v, base, addr, ifidx) 20*41edb306SCy Schubert int v; 21*41edb306SCy Schubert char *base; 22*41edb306SCy Schubert nat_addr_t *addr; 23*41edb306SCy Schubert int ifidx; 24*41edb306SCy Schubert { 25*41edb306SCy Schubert switch (v) 26*41edb306SCy Schubert { 27*41edb306SCy Schubert case 4 : 28*41edb306SCy Schubert if (addr->na_atype == FRI_NORMAL && 29*41edb306SCy Schubert addr->na_addr[0].in4.s_addr == 0) { 30*41edb306SCy Schubert PRINTF("0/%d", count4bits(addr->na_addr[1].in4.s_addr)); 31*41edb306SCy Schubert } else { 32*41edb306SCy Schubert printaddr(AF_INET, addr->na_atype, base, ifidx, 33*41edb306SCy Schubert (u_32_t *)&addr->na_addr[0].in4.s_addr, 34*41edb306SCy Schubert (u_32_t *)&addr->na_addr[1].in4.s_addr); 35*41edb306SCy Schubert } 36*41edb306SCy Schubert break; 37*41edb306SCy Schubert #ifdef USE_INET6 38*41edb306SCy Schubert case 6 : 39*41edb306SCy Schubert printaddr(AF_INET6, addr->na_atype, base, ifidx, 40*41edb306SCy Schubert (u_32_t *)&addr->na_addr[0].in6, 41*41edb306SCy Schubert (u_32_t *)&addr->na_addr[1].in6); 42*41edb306SCy Schubert break; 43*41edb306SCy Schubert #endif 44*41edb306SCy Schubert default : 45*41edb306SCy Schubert printf("{v=%d}", v); 46*41edb306SCy Schubert break; 47*41edb306SCy Schubert } 48*41edb306SCy Schubert } 49