1/* $NetBSD: printaddr.c,v 1.2 2012/07/22 14:27:36 darrenr Exp $ */ 2 3/* 4 * Copyright (C) 2012 by Darren Reed. 5 * 6 * See the IPFILTER.LICENCE file for details on licencing. 7 * 8 * Id: printaddr.c,v 1.1.1.2 2012/07/22 13:44:40 darrenr Exp $ 9 */ 10 11#include "ipf.h" 12 13void 14printaddr(family, type, base, ifidx, addr, mask) 15 int family, type, ifidx; 16 char *base; 17 u_32_t *addr, *mask; 18{ 19 char *suffix; 20 21 switch (type) 22 { 23 case FRI_BROADCAST : 24 suffix = "bcast"; 25 break; 26 27 case FRI_DYNAMIC : 28 PRINTF("%s", base + ifidx); 29 printmask(family, mask); 30 suffix = NULL; 31 break; 32 33 case FRI_NETWORK : 34 suffix = "net"; 35 break; 36 37 case FRI_NETMASKED : 38 suffix = "netmasked"; 39 break; 40 41 case FRI_PEERADDR : 42 suffix = "peer"; 43 break; 44 45 case FRI_LOOKUP : 46 suffix = NULL; 47 printlookup(base, (i6addr_t *)addr, (i6addr_t *)mask); 48 break; 49 50 case FRI_NONE : 51 case FRI_NORMAL : 52 printhostmask(family, addr, mask); 53 suffix = NULL; 54 break; 55 case FRI_RANGE : 56 printhost(family, addr); 57 putchar('-'); 58 printhost(family, mask); 59 suffix = NULL; 60 break; 61 case FRI_SPLIT : 62 printhost(family, addr); 63 putchar(','); 64 printhost(family, mask); 65 suffix = NULL; 66 break; 67 default : 68 PRINTF("<%d>", type); 69 printmask(family, mask); 70 suffix = NULL; 71 break; 72 } 73 74 if (suffix != NULL) { 75 PRINTF("%s/%s", base + ifidx, suffix); 76 } 77} 78