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
13 void
printaddr(family,type,base,ifidx,addr,mask)14 printaddr(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