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