1220747Snwhitehorn/* $NetBSD: printactivenat.c,v 1.1.1.3 2007/04/14 20:17:31 martin Exp $ */ 2251843Sbapt 3220747Snwhitehorn/* 4251843Sbapt * Copyright (C) 2002-2004 by Darren Reed. 5220747Snwhitehorn * 6220747Snwhitehorn * See the IPFILTER.LICENCE file for details on licencing. 7220747Snwhitehorn * 8220747Snwhitehorn * Added redirect stuff and a variety of bug fixes. (mcn@EnGarde.com) 9220747Snwhitehorn */ 10220747Snwhitehorn 11220747Snwhitehorn#include "ipf.h" 12220747Snwhitehorn 13220747Snwhitehorn 14220747Snwhitehorn#if !defined(lint) 15220747Snwhitehornstatic const char rcsid[] = "@(#)Id: printactivenat.c,v 1.3.2.7 2006/12/12 16:13:00 darrenr Exp"; 16220747Snwhitehorn#endif 17220747Snwhitehorn 18220747Snwhitehorn 19220747Snwhitehornvoid printactivenat(nat, opts, alive, now) 20220747Snwhitehornnat_t *nat; 21220747Snwhitehornint opts, alive; 22220747Snwhitehornu_long now; 23220747Snwhitehorn{ 24220747Snwhitehorn 25220747Snwhitehorn printf("%s", getnattype(nat, alive)); 26220747Snwhitehorn 27220747Snwhitehorn if (nat->nat_flags & SI_CLONE) 28220747Snwhitehorn printf(" CLONE"); 29220747Snwhitehorn 30220747Snwhitehorn printf(" %-15s", inet_ntoa(nat->nat_inip)); 31220747Snwhitehorn 32220747Snwhitehorn if ((nat->nat_flags & IPN_TCPUDP) != 0) 33220747Snwhitehorn printf(" %-5hu", ntohs(nat->nat_inport)); 34220747Snwhitehorn 35220747Snwhitehorn printf(" <- -> %-15s",inet_ntoa(nat->nat_outip)); 36220747Snwhitehorn 37220747Snwhitehorn if ((nat->nat_flags & IPN_TCPUDP) != 0) 38220747Snwhitehorn printf(" %-5hu", ntohs(nat->nat_outport)); 39220747Snwhitehorn 40220747Snwhitehorn printf(" [%s", inet_ntoa(nat->nat_oip)); 41220747Snwhitehorn if ((nat->nat_flags & IPN_TCPUDP) != 0) 42220747Snwhitehorn printf(" %hu", ntohs(nat->nat_oport)); 43220747Snwhitehorn printf("]"); 44220747Snwhitehorn 45220747Snwhitehorn if (opts & OPT_VERBOSE) { 46220747Snwhitehorn printf("\n\tttl %lu use %hu sumd %s/", 47220747Snwhitehorn nat->nat_age - now, nat->nat_use, 48220747Snwhitehorn getsumd(nat->nat_sumd[0])); 49220747Snwhitehorn printf("%s pr %u bkt %d/%d flags %x\n", 50220747Snwhitehorn getsumd(nat->nat_sumd[1]), nat->nat_p, 51220747Snwhitehorn nat->nat_hv[0], nat->nat_hv[1], nat->nat_flags); 52220747Snwhitehorn printf("\tifp %s", getifname(nat->nat_ifps[0])); 53220747Snwhitehorn printf(",%s ", getifname(nat->nat_ifps[1])); 54220747Snwhitehorn#ifdef USE_QUAD_T 55220747Snwhitehorn printf("bytes %qu/%qu pkts %qu/%qu", 56220747Snwhitehorn (unsigned long long)nat->nat_bytes[0], 57251843Sbapt (unsigned long long)nat->nat_bytes[1], 58220747Snwhitehorn (unsigned long long)nat->nat_pkts[0], 59220747Snwhitehorn (unsigned long long)nat->nat_pkts[1]); 60220747Snwhitehorn#else 61 printf("bytes %lu/%lu pkts %lu/%lu", nat->nat_bytes[0], 62 nat->nat_bytes[1], nat->nat_pkts[0], nat->nat_pkts[1]); 63#endif 64 printf(" ipsumd %x", nat->nat_ipsumd); 65 } 66 67 if (opts & OPT_DEBUG) { 68 printf("\n\tnat_next %p _pnext %p _hm %p\n", 69 nat->nat_next, nat->nat_pnext, nat->nat_hm); 70 printf("\t_hnext %p/%p _phnext %p/%p\n", 71 nat->nat_hnext[0], nat->nat_hnext[1], 72 nat->nat_phnext[0], nat->nat_phnext[1]); 73 printf("\t_data %p _me %p _state %p _aps %p\n", 74 nat->nat_data, nat->nat_me, nat->nat_state, nat->nat_aps); 75 printf("\tfr %p ptr %p ifps %p/%p sync %p\n", 76 nat->nat_fr, nat->nat_ptr, nat->nat_ifps[0], 77 nat->nat_ifps[1], nat->nat_sync); 78 printf("\ttqe:pnext %p next %p ifq %p parent %p/%p\n", 79 nat->nat_tqe.tqe_pnext, nat->nat_tqe.tqe_next, 80 nat->nat_tqe.tqe_ifq, nat->nat_tqe.tqe_parent, nat); 81 printf("\ttqe:die %ld touched %ld flags %x state %d/%d\n", 82 nat->nat_tqe.tqe_die, nat->nat_tqe.tqe_touched, 83 nat->nat_tqe.tqe_flags, nat->nat_tqe.tqe_state[0], 84 nat->nat_tqe.tqe_state[1]); 85 } 86 putchar('\n'); 87} 88