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