1 /* $NetBSD: printpoolnode.c,v 1.1.1.2 2012/07/22 13:44:42 darrenr Exp $ */
2
3 /*
4 * Copyright (C) 2012 by Darren Reed.
5 *
6 * See the IPFILTER.LICENCE file for details on licencing.
7 */
8
9 #include "ipf.h"
10
11
12 ip_pool_node_t *
printpoolnode(np,opts,fields)13 printpoolnode(np, opts, fields)
14 ip_pool_node_t *np;
15 int opts;
16 wordtab_t *fields;
17 {
18 int i;
19
20 if (fields != NULL) {
21 for (i = 0; fields[i].w_value != 0; i++) {
22 printpoolfield(np, IPLT_POOL, i);
23 if (fields[i + 1].w_value != 0)
24 printf("\t");
25 }
26 printf("\n");
27 } else if ((opts & OPT_DEBUG) == 0) {
28 putchar(' ');
29 if (np->ipn_info == 1)
30 PRINTF("! ");
31 printip(np->ipn_addr.adf_family,
32 (u_32_t *)&np->ipn_addr.adf_addr.in4);
33 printmask(np->ipn_addr.adf_family,
34 (u_32_t *)&np->ipn_mask.adf_addr);
35 } else {
36 PRINTF("\tAddress: %s%s", np->ipn_info ? "! " : "",
37 inet_ntoa(np->ipn_addr.adf_addr.in4));
38 printmask(np->ipn_addr.adf_family,
39 (u_32_t *)&np->ipn_mask.adf_addr);
40 #ifdef USE_QUAD_T
41 PRINTF("\n\t\tHits %"PRIu64"\tBytes %"PRIu64"\tName %s\tRef %d\n",
42 np->ipn_hits, np->ipn_bytes,
43 np->ipn_name, np->ipn_ref);
44 #else
45 PRINTF("\n\t\tHits %lu\tBytes %lu\tName %s\tRef %d\n",
46 np->ipn_hits, np->ipn_bytes,
47 np->ipn_name, np->ipn_ref);
48 #endif
49 }
50 return np->ipn_next;
51 }
52