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