xref: /titanic_51/usr/src/cmd/ipf/lib/common/printpoolnode.c (revision c0dd49bdd68c0d758a67d56f07826f3b45cfc664)
1 /*
2  * Copyright (C) 2002 by Darren Reed.
3  *
4  * See the IPFILTER.LICENCE file for details on licencing.
5  *
6  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
7  * Use is subject to license terms.
8  */
9 
10 #pragma ident	"%Z%%M%	%I%	%E% SMI"
11 
12 #include "ipf.h"
13 
14 #define	PRINTF	(void)printf
15 #define	FPRINTF	(void)fprintf
16 
17 ip_pool_node_t *printpoolnode(np, opts)
18 ip_pool_node_t *np;
19 int opts;
20 {
21 	if ((opts & OPT_DEBUG) == 0) {
22 		putchar(' ');
23 		if (np->ipn_info == 1)
24 			PRINTF("! ");
25 
26 #ifdef USE_INET6
27 		if (np->ipn_addr.adf_family == AF_INET6)
28                         printhostmask(6, (u_32_t *)&np->ipn_addr.adf_addr.in6,
29                                          (u_32_t *)&np->ipn_mask.adf_addr);
30 		else
31 #endif
32 		{
33 			printip((u_32_t *)&np->ipn_addr.adf_addr.in4);
34 			printmask(4, (u_32_t *)&np->ipn_mask.adf_addr);
35 		}
36 	} else {
37 #ifdef USE_INET6
38 		char addinfo[INET6_ADDRSTRLEN + 1];
39 #endif
40 		PRINTF("\t\t");
41 		if (np->ipn_info == 1)
42 			PRINTF("! ");
43 
44 #ifdef USE_INET6
45 		PRINTF("%s", inet_ntop(np->ipn_addr.adf_family,
46 				       (void *)&np->ipn_addr.adf_addr.in4,
47 				       addinfo, INET6_ADDRSTRLEN));
48 #else
49 		PRINTF("%s", inet_ntoa(np->ipn_addr.adf_addr.in4));
50 #endif
51 #ifdef USE_INET6
52 		if (np->ipn_addr.adf_family == AF_INET6)
53 			printmask(6, (u_32_t *)&np->ipn_mask.adf_addr);
54 		else
55 #endif
56 			printmask(4, (u_32_t *)&np->ipn_mask.adf_addr);
57 
58 		PRINTF("\n\t\tHits %lu\tName %s\n",
59 			np->ipn_hits, np->ipn_name);
60 	}
61 	return np->ipn_next;
62 }
63