Sync usage with man page.
[netbsd-mini2440.git] / dist / ipf / lib / printhashnode.c
blob22b47d9989d4aff449e4715d71d9d21773ee6547
1 /* $NetBSD$ */
3 /*
4 * Copyright (C) 2002-2005 by Darren Reed.
6 * See the IPFILTER.LICENCE file for details on licencing.
7 */
9 #include "ipf.h"
11 #define PRINTF (void)printf
12 #define FPRINTF (void)fprintf
14 iphtent_t *printhashnode(iph, ipep, copyfunc, opts)
15 iphtable_t *iph;
16 iphtent_t *ipep;
17 copyfunc_t copyfunc;
18 int opts;
20 iphtent_t ipe;
22 if ((*copyfunc)(ipep, &ipe, sizeof(ipe)))
23 return NULL;
25 ipe.ipe_addr.in4_addr = htonl(ipe.ipe_addr.in4_addr);
26 ipe.ipe_mask.in4_addr = htonl(ipe.ipe_mask.in4_addr);
28 if ((opts & OPT_DEBUG) != 0) {
29 PRINTF("\tAddress: %s",
30 inet_ntoa(ipe.ipe_addr.in4));
31 printmask((u_32_t *)&ipe.ipe_mask.in4_addr);
32 PRINTF("\tRef. Count: %d\tGroup: %s\n", ipe.ipe_ref,
33 ipe.ipe_group);
34 } else {
35 putchar(' ');
36 printip((u_32_t *)&ipe.ipe_addr.in4_addr);
37 printmask((u_32_t *)&ipe.ipe_mask.in4_addr);
38 if (ipe.ipe_value != 0) {
39 switch (iph->iph_type & ~IPHASH_ANON)
41 case IPHASH_GROUPMAP :
42 if (strncmp(ipe.ipe_group, iph->iph_name,
43 FR_GROUPLEN))
44 PRINTF(", group = %s", ipe.ipe_group);
45 break;
48 putchar(';');
51 ipep = ipe.ipe_next;
52 return ipep;