mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 16:46:33 -04:00
223 lines
3.3 KiB
C
223 lines
3.3 KiB
C
/* $NetBSD: printnatfield.c,v 1.2 2012/07/22 14:27:37 darrenr Exp $ */
|
|
|
|
/*
|
|
* Copyright (C) 2012 by Darren Reed.
|
|
*
|
|
* See the IPFILTER.LICENCE file for details on licencing.
|
|
*
|
|
* Id: printnatfield.c,v 1.1.1.2 2012/07/22 13:44:41 darrenr Exp $
|
|
*/
|
|
|
|
#include "ipf.h"
|
|
|
|
wordtab_t natfields[] = {
|
|
{ "all", -2 },
|
|
{ "ifp0", 1 },
|
|
{ "ifp1", 2 },
|
|
{ "mtu0", 3 },
|
|
{ "mtu1", 4 },
|
|
{ "ifname0", 5 },
|
|
{ "ifname1", 6 },
|
|
{ "sumd0", 7 },
|
|
{ "sumd1", 8 },
|
|
{ "pkts0", 9 },
|
|
{ "pkts1", 10 },
|
|
{ "bytes0", 11 },
|
|
{ "bytes1", 12 },
|
|
{ "proto0", 13 },
|
|
{ "proto1", 14 },
|
|
{ "hash0", 15 },
|
|
{ "hash1", 16 },
|
|
{ "ref", 17 },
|
|
{ "rev", 18 },
|
|
{ "v0", 19 },
|
|
{ "redir", 20 },
|
|
{ "use", 21 },
|
|
{ "ipsumd", 22 },
|
|
{ "dir", 23 },
|
|
{ "olddstip", 24 },
|
|
{ "oldsrcip", 25 },
|
|
{ "newdstip", 26 },
|
|
{ "newsrcip", 27 },
|
|
{ "olddport", 28 },
|
|
{ "oldsport", 29 },
|
|
{ "newdport", 30 },
|
|
{ "newsport", 31 },
|
|
{ "age", 32 },
|
|
{ "v1", 33 },
|
|
{ NULL, 0 }
|
|
};
|
|
|
|
|
|
void
|
|
printnatfield(n, fieldnum)
|
|
nat_t *n;
|
|
int fieldnum;
|
|
{
|
|
int i;
|
|
|
|
switch (fieldnum)
|
|
{
|
|
case -2 :
|
|
for (i = 1; natfields[i].w_word != NULL; i++) {
|
|
if (natfields[i].w_value > 0) {
|
|
printnatfield(n, i);
|
|
if (natfields[i + 1].w_value > 0)
|
|
putchar('\t');
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
PRINTF("%#lx", (u_long)n->nat_ifps[0]);
|
|
break;
|
|
|
|
case 2:
|
|
PRINTF("%#lx", (u_long)n->nat_ifps[1]);
|
|
break;
|
|
|
|
case 3:
|
|
PRINTF("%d", n->nat_mtu[0]);
|
|
break;
|
|
|
|
case 4:
|
|
PRINTF("%d", n->nat_mtu[1]);
|
|
break;
|
|
|
|
case 5:
|
|
PRINTF("%s", n->nat_ifnames[0]);
|
|
break;
|
|
|
|
case 6:
|
|
PRINTF("%s", n->nat_ifnames[1]);
|
|
break;
|
|
|
|
case 7:
|
|
PRINTF("%d", n->nat_sumd[0]);
|
|
break;
|
|
|
|
case 8:
|
|
PRINTF("%d", n->nat_sumd[1]);
|
|
break;
|
|
|
|
case 9:
|
|
#ifdef USE_QUAD_T
|
|
PRINTF("%"PRIu64"", n->nat_pkts[0]);
|
|
#else
|
|
PRINTF("%lu", n->nat_pkts[0]);
|
|
#endif
|
|
break;
|
|
|
|
case 10:
|
|
#ifdef USE_QUAD_T
|
|
PRINTF("%"PRIu64"", n->nat_pkts[1]);
|
|
#else
|
|
PRINTF("%lu", n->nat_pkts[1]);
|
|
#endif
|
|
break;
|
|
|
|
case 11:
|
|
#ifdef USE_QUAD_T
|
|
PRINTF("%"PRIu64"", n->nat_bytes[0]);
|
|
#else
|
|
PRINTF("%lu", n->nat_bytes[0]);
|
|
#endif
|
|
break;
|
|
|
|
case 12:
|
|
#ifdef USE_QUAD_T
|
|
PRINTF("%"PRIu64"", n->nat_bytes[1]);
|
|
#else
|
|
PRINTF("%lu", n->nat_bytes[1]);
|
|
#endif
|
|
break;
|
|
|
|
case 13:
|
|
PRINTF("%d", n->nat_pr[0]);
|
|
break;
|
|
|
|
case 14:
|
|
PRINTF("%d", n->nat_pr[1]);
|
|
break;
|
|
|
|
case 15:
|
|
PRINTF("%u", n->nat_hv[0]);
|
|
break;
|
|
|
|
case 16:
|
|
PRINTF("%u", n->nat_hv[1]);
|
|
break;
|
|
|
|
case 17:
|
|
PRINTF("%d", n->nat_ref);
|
|
break;
|
|
|
|
case 18:
|
|
PRINTF("%d", n->nat_rev);
|
|
break;
|
|
|
|
case 19:
|
|
PRINTF("%d", n->nat_v[0]);
|
|
break;
|
|
|
|
case 33:
|
|
PRINTF("%d", n->nat_v[0]);
|
|
break;
|
|
|
|
case 20:
|
|
PRINTF("%d", n->nat_redir);
|
|
break;
|
|
|
|
case 21:
|
|
PRINTF("%d", n->nat_use);
|
|
break;
|
|
|
|
case 22:
|
|
PRINTF("%u", n->nat_ipsumd);
|
|
break;
|
|
|
|
case 23:
|
|
PRINTF("%d", n->nat_dir);
|
|
break;
|
|
|
|
case 24:
|
|
PRINTF("%s", hostname(n->nat_v[0], &n->nat_odstip));
|
|
break;
|
|
|
|
case 25:
|
|
PRINTF("%s", hostname(n->nat_v[0], &n->nat_osrcip));
|
|
break;
|
|
|
|
case 26:
|
|
PRINTF("%s", hostname(n->nat_v[1], &n->nat_ndstip));
|
|
break;
|
|
|
|
case 27:
|
|
PRINTF("%s", hostname(n->nat_v[1], &n->nat_nsrcip));
|
|
break;
|
|
|
|
case 28:
|
|
PRINTF("%hu", ntohs(n->nat_odport));
|
|
break;
|
|
|
|
case 29:
|
|
PRINTF("%hu", ntohs(n->nat_osport));
|
|
break;
|
|
|
|
case 30:
|
|
PRINTF("%hu", ntohs(n->nat_ndport));
|
|
break;
|
|
|
|
case 31:
|
|
PRINTF("%hu", ntohs(n->nat_nsport));
|
|
break;
|
|
|
|
case 32:
|
|
PRINTF("%u", n->nat_age);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|