xref: /freebsd/sbin/ipf/libipf/printpooldata.c (revision b3d14eaccc5f606690d99b1998bfdf32a22404f6)
1 /*
2  * Copyright (C) 2012 by Darren Reed.
3  *
4  * See the IPFILTER.LICENCE file for details on licencing.
5  */
6 
7 #include "ipf.h"
8 #include <ctype.h>
9 
10 
11 void
12 printpooldata(pool, opts)
13 	ip_pool_t *pool;
14 	int opts;
15 {
16 
17 	if ((opts & OPT_DEBUG) == 0) {
18 		if ((pool->ipo_flags & IPOOL_ANON) != 0)
19 			PRINTF("# 'anonymous' tree %s\n", pool->ipo_name);
20 		if ((pool->ipo_flags & IPOOL_DELETE) != 0)
21 			PRINTF("# ");
22 		PRINTF("table role=");
23 	} else {
24 		if ((pool->ipo_flags & IPOOL_DELETE) != 0)
25 			PRINTF("# ");
26 		PRINTF("%s: %s",
27 			ISDIGIT(*pool->ipo_name) ? "Number" : "Name",
28 			pool->ipo_name);
29 		if ((pool->ipo_flags & IPOOL_ANON) == IPOOL_ANON)
30 			PRINTF("(anon)");
31 		putchar(' ');
32 		PRINTF("Role: ");
33 	}
34 
35 	printunit(pool->ipo_unit);
36 
37 	if ((opts & OPT_DEBUG) == 0) {
38 		PRINTF(" type=tree %s=%s\n",
39 			(!*pool->ipo_name || ISDIGIT(*pool->ipo_name)) ? \
40 			"number" : "name", pool->ipo_name);
41 	} else {
42 		putchar(' ');
43 
44 		PRINTF("\tReferences: %d\tHits: %lu\n", pool->ipo_ref,
45 			pool->ipo_hits);
46 		if ((pool->ipo_flags & IPOOL_DELETE) != 0)
47 			PRINTF("# ");
48 		PRINTF("\tNodes Starting at %p\n", pool->ipo_list);
49 	}
50 }
51