1254219Scy/*
2254219Scy * Copyright (C) 2012 by Darren Reed.
3254219Scy *
4254219Scy * See the IPFILTER.LICENCE file for details on licencing.
5254219Scy *
6254219Scy * $Id$
7254219Scy */
8254219Scy
9254219Scy#include "ipf.h"
10254219Scy
11254219Scyvoid
12254219Scyprintaddr(family, type, base, ifidx, addr, mask)
13254219Scy	int family, type, ifidx;
14254219Scy	char *base;
15254219Scy	u_32_t *addr, *mask;
16254219Scy{
17254219Scy	char *suffix;
18254219Scy
19254219Scy	switch (type)
20254219Scy	{
21254219Scy	case FRI_BROADCAST :
22254219Scy		suffix = "bcast";
23254219Scy		break;
24254219Scy
25254219Scy	case FRI_DYNAMIC :
26254219Scy		PRINTF("%s", base + ifidx);
27254219Scy		printmask(family, mask);
28254219Scy		suffix = NULL;
29254219Scy		break;
30254219Scy
31254219Scy	case FRI_NETWORK :
32254219Scy		suffix = "net";
33254219Scy		break;
34254219Scy
35254219Scy	case FRI_NETMASKED :
36254219Scy		suffix = "netmasked";
37254219Scy		break;
38254219Scy
39254219Scy	case FRI_PEERADDR :
40254219Scy		suffix = "peer";
41254219Scy		break;
42254219Scy
43254219Scy	case FRI_LOOKUP :
44254219Scy		suffix = NULL;
45254219Scy		printlookup(base, (i6addr_t *)addr, (i6addr_t *)mask);
46254219Scy		break;
47254219Scy
48254219Scy	case FRI_NONE :
49254219Scy	case FRI_NORMAL :
50254219Scy		printhostmask(family, addr, mask);
51254219Scy		suffix = NULL;
52254219Scy		break;
53254219Scy	case FRI_RANGE :
54254219Scy		printhost(family, addr);
55254219Scy		putchar('-');
56254219Scy		printhost(family, mask);
57254219Scy		suffix = NULL;
58254219Scy		break;
59254219Scy	case FRI_SPLIT :
60254219Scy		printhost(family, addr);
61254219Scy		putchar(',');
62254219Scy		printhost(family, mask);
63254219Scy		suffix = NULL;
64254219Scy		break;
65254219Scy	default :
66254219Scy		PRINTF("<%d>", type);
67254219Scy		printmask(family, mask);
68254219Scy		suffix = NULL;
69254219Scy		break;
70254219Scy	}
71254219Scy
72254219Scy	if (suffix != NULL) {
73254219Scy		PRINTF("%s/%s", base + ifidx, suffix);
74254219Scy	}
75254219Scy}
76