printhashnode.c revision 145519
1145519Sdarrenr/*	$FreeBSD: head/contrib/ipfilter/lib/printhashnode.c 145519 2005-04-25 18:20:15Z darrenr $	*/
2145510Sdarrenr
3145510Sdarrenr/*
4145510Sdarrenr * Copyright (C) 2002 by Darren Reed.
5145510Sdarrenr *
6145510Sdarrenr * See the IPFILTER.LICENCE file for details on licencing.
7145510Sdarrenr */
8145510Sdarrenr
9145510Sdarrenr#include "ipf.h"
10145510Sdarrenr
11145510Sdarrenr#define	PRINTF	(void)printf
12145510Sdarrenr#define	FPRINTF	(void)fprintf
13145510Sdarrenr
14145510Sdarrenriphtent_t *printhashnode(iph, ipep, copyfunc, opts)
15145510Sdarrenriphtable_t *iph;
16145510Sdarrenriphtent_t *ipep;
17145510Sdarrenrcopyfunc_t copyfunc;
18145510Sdarrenrint opts;
19145510Sdarrenr{
20145510Sdarrenr	iphtent_t ipe;
21145510Sdarrenr
22145510Sdarrenr	if ((*copyfunc)(ipep, &ipe, sizeof(ipe)))
23145510Sdarrenr		return NULL;
24145510Sdarrenr
25145510Sdarrenr	ipe.ipe_addr.in4_addr = htonl(ipe.ipe_addr.in4_addr);
26145510Sdarrenr	ipe.ipe_mask.in4_addr = htonl(ipe.ipe_mask.in4_addr);
27145510Sdarrenr
28145510Sdarrenr	if ((opts & OPT_DEBUG) != 0) {
29145510Sdarrenr		PRINTF("\tAddress: %s",
30145510Sdarrenr			inet_ntoa(ipe.ipe_addr.in4));
31145510Sdarrenr		printmask((u_32_t *)&ipe.ipe_mask.in4_addr);
32145510Sdarrenr		PRINTF("\tRef. Count: %d\tGroup: %s\n", ipe.ipe_ref,
33145510Sdarrenr			ipe.ipe_group);
34145510Sdarrenr	} else {
35145510Sdarrenr		putchar(' ');
36145510Sdarrenr		printip((u_32_t *)&ipe.ipe_addr.in4_addr);
37145510Sdarrenr		printmask((u_32_t *)&ipe.ipe_mask.in4_addr);
38145510Sdarrenr		if (ipe.ipe_value != 0) {
39145510Sdarrenr			switch (iph->iph_type & ~IPHASH_ANON)
40145510Sdarrenr			{
41145510Sdarrenr			case IPHASH_GROUPMAP :
42145510Sdarrenr				if (strncmp(ipe.ipe_group, iph->iph_name,
43145510Sdarrenr					    FR_GROUPLEN))
44145510Sdarrenr					PRINTF(", group = %s", ipe.ipe_group);
45145510Sdarrenr				break;
46145510Sdarrenr			}
47145510Sdarrenr		}
48145510Sdarrenr		putchar(';');
49145510Sdarrenr	}
50145510Sdarrenr	ipep = ipe.ipe_next;
51145510Sdarrenr	return ipep;
52145510Sdarrenr}
53