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