summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/lib/printstatefields.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/lib/printstatefields.c')
-rw-r--r--contrib/ipfilter/lib/printstatefields.c358
1 files changed, 358 insertions, 0 deletions
diff --git a/contrib/ipfilter/lib/printstatefields.c b/contrib/ipfilter/lib/printstatefields.c
new file mode 100644
index 0000000..5632d84
--- /dev/null
+++ b/contrib/ipfilter/lib/printstatefields.c
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2012 by Darren Reed.
+ *
+ * See the IPFILTER.LICENCE file for details on licencing.
+ *
+ * $Id: printstatefields.c,v 1.4.2.2 2012/01/26 05:44:26 darren_r Exp $
+ */
+
+#include "ipf.h"
+
+wordtab_t statefields[] = {
+ { "all", -2 },
+ { "ifp0", 1 },
+ { "ifp1", 2 },
+ { "ifp2", 3 },
+ { "ifp3", 4 },
+ { "ifname0", 5 },
+ { "ifname1", 6 },
+ { "ifname2", 7 },
+ { "ifname3", 8 },
+ { "pkts0", 9 },
+ { "pkts1", 10 },
+ { "pkts2", 11 },
+ { "pkts3", 12 },
+ { "bytes0", 13 },
+ { "bytes1", 14 },
+ { "bytes2", 15 },
+ { "bytes3", 16 },
+ { "state0", 17 },
+ { "state1", 18 },
+ { "age0", 19 },
+ { "age1", 20 },
+ { "ref", 21 },
+ { "isn0", 22 },
+ { "isn1", 23 },
+ { "sumd0", 24 },
+ { "sumd1", 25 },
+ { "src", 26 },
+ { "dst", 27 },
+ { "sport", 28 },
+ { "dport", 29 },
+ { "icmptype", 30 },
+ { "-", 31 },
+ { "pass", 32 },
+ { "proto", 33 },
+ { "version", 34 },
+ { "hash", 35 },
+ { "tag", 36 },
+ { "flags", 37 },
+ { "rulen", 38 },
+ { "group", 39 },
+ { "flx0", 40 },
+ { "flx1", 41 },
+ { "flx2", 42 },
+ { "flx3", 43 },
+ { "opt0", 44 },
+ { "opt1", 45 },
+ { "optmsk0", 46 },
+ { "optmsk1", 47 },
+ { "sec", 48 },
+ { "secmsk", 49 },
+ { "auth", 50 },
+ { "authmsk", 51 },
+ { "icmppkts0", 52 },
+ { "icmppkts1", 53 },
+ { "icmppkts2", 54 },
+ { "icmppkts3", 55 },
+ { NULL, 0 }
+};
+
+
+void
+printstatefield(sp, fieldnum)
+ ipstate_t *sp;
+ int fieldnum;
+{
+ int i;
+
+ switch (fieldnum)
+ {
+ case -2 :
+ for (i = 1; statefields[i].w_word != NULL; i++) {
+ if (statefields[i].w_value > 0) {
+ printstatefield(sp, i);
+ if (statefields[i + 1].w_value > 0)
+ putchar('\t');
+ }
+ }
+ break;
+
+ case 1:
+ PRINTF("%#lx", (u_long)sp->is_ifp[0]);
+ break;
+
+ case 2:
+ PRINTF("%#lx", (u_long)sp->is_ifp[1]);
+ break;
+
+ case 3:
+ PRINTF("%#lx", (u_long)sp->is_ifp[2]);
+ break;
+
+ case 4:
+ PRINTF("%#lx", (u_long)sp->is_ifp[3]);
+ break;
+
+ case 5:
+ PRINTF("%s", sp->is_ifname[0]);
+ break;
+
+ case 6:
+ PRINTF("%s", sp->is_ifname[1]);
+ break;
+
+ case 7:
+ PRINTF("%s", sp->is_ifname[2]);
+ break;
+
+ case 8:
+ PRINTF("%s", sp->is_ifname[3]);
+ break;
+
+ case 9:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_pkts[0]);
+#else
+ PRINTF("%lu", sp->is_pkts[0]);
+#endif
+ break;
+
+ case 10:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_pkts[1]);
+#else
+ PRINTF("%lu", sp->is_pkts[1]);
+#endif
+ break;
+
+ case 11:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_pkts[2]);
+#else
+ PRINTF("%lu", sp->is_pkts[2]);
+#endif
+ break;
+
+ case 12:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_pkts[3]);
+#else
+ PRINTF("%lu", sp->is_pkts[3]);
+#endif
+ break;
+
+ case 13:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_bytes[0]);
+#else
+ PRINTF("%lu", sp->is_bytes[0]);
+#endif
+ break;
+
+ case 14:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_bytes[1]);
+#else
+ PRINTF("%lu", sp->is_bytes[1]);
+#endif
+ break;
+
+ case 15:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_bytes[2]);
+#else
+ PRINTF("%lu", sp->is_bytes[2]);
+#endif
+ break;
+
+ case 16:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_bytes[3]);
+#else
+ PRINTF("%lu", sp->is_bytes[3]);
+#endif
+ break;
+
+ case 17:
+ PRINTF("%d", sp->is_state[0]);
+ break;
+
+ case 18:
+ PRINTF("%d", sp->is_state[1]);
+ break;
+
+ case 19:
+ PRINTF("%d", sp->is_frage[0]);
+ break;
+
+ case 20:
+ PRINTF("%d", sp->is_frage[1]);
+ break;
+
+ case 21:
+ PRINTF("%d", sp->is_ref);
+ break;
+
+ case 22:
+ PRINTF("%d", sp->is_isninc[0]);
+ break;
+
+ case 23:
+ PRINTF("%d", sp->is_isninc[1]);
+ break;
+
+ case 24:
+ PRINTF("%hd", sp->is_sumd[0]);
+ break;
+
+ case 25:
+ PRINTF("%hd", sp->is_sumd[1]);
+ break;
+
+ case 26:
+ PRINTF("%s", hostname(sp->is_v, &sp->is_src.in4));
+ break;
+
+ case 27:
+ PRINTF("%s", hostname(sp->is_v, &sp->is_dst.in4));
+ break;
+
+ case 28:
+ PRINTF("%hu", ntohs(sp->is_sport));
+ break;
+
+ case 29:
+ PRINTF("%hu", ntohs(sp->is_dport));
+ break;
+
+ case 30:
+ PRINTF("%d", sp->is_type);
+ break;
+
+ case 32:
+ PRINTF("%#x", sp->is_pass);
+ break;
+
+ case 33:
+ PRINTF("%d", sp->is_p);
+ break;
+
+ case 34:
+ PRINTF("%d", sp->is_v);
+ break;
+
+ case 35:
+ PRINTF("%d", sp->is_hv);
+ break;
+
+ case 36:
+ PRINTF("%d", sp->is_tag);
+ break;
+
+ case 37:
+ PRINTF("%#x", sp->is_flags);
+ break;
+
+ case 38:
+ PRINTF("%d", sp->is_rulen);
+ break;
+
+ case 39:
+ PRINTF("%s", sp->is_group);
+ break;
+
+ case 40:
+ PRINTF("%#x", sp->is_flx[0][0]);
+ break;
+
+ case 41:
+ PRINTF("%#x", sp->is_flx[0][1]);
+ break;
+
+ case 42:
+ PRINTF("%#x", sp->is_flx[1][0]);
+ break;
+
+ case 43:
+ PRINTF("%#x", sp->is_flx[1][1]);
+ break;
+
+ case 44:
+ PRINTF("%#x", sp->is_opt[0]);
+ break;
+
+ case 45:
+ PRINTF("%#x", sp->is_opt[1]);
+ break;
+
+ case 46:
+ PRINTF("%#x", sp->is_optmsk[0]);
+ break;
+
+ case 47:
+ PRINTF("%#x", sp->is_optmsk[1]);
+ break;
+
+ case 48:
+ PRINTF("%#x", sp->is_sec);
+ break;
+
+ case 49:
+ PRINTF("%#x", sp->is_secmsk);
+ break;
+
+ case 50:
+ PRINTF("%#x", sp->is_auth);
+ break;
+
+ case 51:
+ PRINTF("%#x", sp->is_authmsk);
+ break;
+
+ case 52:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_icmppkts[0]);
+#else
+ PRINTF("%lu", sp->is_icmppkts[0]);
+#endif
+ break;
+
+ case 53:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_icmppkts[1]);
+#else
+ PRINTF("%lu", sp->is_icmppkts[1]);
+#endif
+ break;
+
+ case 54:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_icmppkts[2]);
+#else
+ PRINTF("%lu", sp->is_icmppkts[2]);
+#endif
+ break;
+
+ case 55:
+#ifdef USE_QUAD_T
+ PRINTF("%"PRIu64"", sp->is_icmppkts[3]);
+#else
+ PRINTF("%lu", sp->is_icmppkts[3]);
+#endif
+ break;
+
+ default:
+ break;
+ }
+}
OpenPOWER on IntegriCloud