printhashnode.c revision 145511
1272343Sngie/* $NetBSD$ */ 2272343Sngie 3272343Sngie/* 4272343Sngie * Copyright (C) 2002 by Darren Reed. 5272343Sngie * 6272343Sngie * See the IPFILTER.LICENCE file for details on licencing. 7272343Sngie */ 8272343Sngie 9272343Sngie#include "ipf.h" 10272343Sngie 11272343Sngie#define PRINTF (void)printf 12272343Sngie#define FPRINTF (void)fprintf 13272343Sngie 14272343Sngieiphtent_t *printhashnode(iph, ipep, copyfunc, opts) 15272343Sngieiphtable_t *iph; 16272343Sngieiphtent_t *ipep; 17272343Sngiecopyfunc_t copyfunc; 18272343Sngieint opts; 19272343Sngie{ 20272343Sngie iphtent_t ipe; 21272343Sngie 22272343Sngie if ((*copyfunc)(ipep, &ipe, sizeof(ipe))) 23272343Sngie return NULL; 24272343Sngie 25272343Sngie ipe.ipe_addr.in4_addr = htonl(ipe.ipe_addr.in4_addr); 26272343Sngie ipe.ipe_mask.in4_addr = htonl(ipe.ipe_mask.in4_addr); 27272343Sngie 28272343Sngie if ((opts & OPT_DEBUG) != 0) { 29272343Sngie PRINTF("\tAddress: %s", 30272343Sngie inet_ntoa(ipe.ipe_addr.in4)); 31272343Sngie printmask((u_32_t *)&ipe.ipe_mask.in4_addr); 32272343Sngie PRINTF("\tRef. Count: %d\tGroup: %s\n", ipe.ipe_ref, 33272343Sngie ipe.ipe_group); 34272343Sngie } else { 35272343Sngie putchar(' '); 36272343Sngie printip((u_32_t *)&ipe.ipe_addr.in4_addr); 37272343Sngie printmask((u_32_t *)&ipe.ipe_mask.in4_addr); 38272343Sngie if (ipe.ipe_value != 0) { 39272343Sngie switch (iph->iph_type & ~IPHASH_ANON) 40272343Sngie { 41272343Sngie case IPHASH_GROUPMAP : 42272343Sngie if (strncmp(ipe.ipe_group, iph->iph_name, 43272343Sngie FR_GROUPLEN)) 44272343Sngie PRINTF(", group = %s", ipe.ipe_group); 45272343Sngie break; 46272343Sngie } 47272343Sngie } 48272343Sngie putchar(';'); 49272343Sngie } 50272343Sngie ipep = ipe.ipe_next; 51272343Sngie return ipep; 52272343Sngie} 53272343Sngie