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