xref: /illumos-gate/usr/src/cmd/ipf/lib/common/printaddr.c (revision d6c23f6f)
1*d6c23f6fSyx /*
2*d6c23f6fSyx  * Copyright (C) 2005 by Darren Reed.
3*d6c23f6fSyx  *
4*d6c23f6fSyx  * See the IPFILTER.LICENCE file for details on licencing.
5*d6c23f6fSyx  *
6*d6c23f6fSyx  */
7*d6c23f6fSyx 
8*d6c23f6fSyx #pragma ident	"%Z%%M%	%I%	%E% SMI"
9*d6c23f6fSyx 
10*d6c23f6fSyx #include "ipf.h"
11*d6c23f6fSyx 
12*d6c23f6fSyx 
printaddr(v,type,ifname,addr,mask)13*d6c23f6fSyx void printaddr(v, type, ifname, addr, mask)
14*d6c23f6fSyx int v, type;
15*d6c23f6fSyx char *ifname;
16*d6c23f6fSyx u_32_t *addr, *mask;
17*d6c23f6fSyx {
18*d6c23f6fSyx 	char *suffix;
19*d6c23f6fSyx 
20*d6c23f6fSyx 	switch (type)
21*d6c23f6fSyx 	{
22*d6c23f6fSyx 	case FRI_BROADCAST :
23*d6c23f6fSyx 		suffix = "/bcast";
24*d6c23f6fSyx 		break;
25*d6c23f6fSyx 
26*d6c23f6fSyx 	case FRI_DYNAMIC :
27*d6c23f6fSyx 		printf("%s", ifname);
28*d6c23f6fSyx 		printmask(v, mask);
29*d6c23f6fSyx 		suffix = NULL;
30*d6c23f6fSyx 		break;
31*d6c23f6fSyx 
32*d6c23f6fSyx 	case FRI_NETWORK :
33*d6c23f6fSyx 		suffix = "/net";
34*d6c23f6fSyx 		break;
35*d6c23f6fSyx 
36*d6c23f6fSyx 	case FRI_NETMASKED :
37*d6c23f6fSyx 		suffix = "/netmasked";
38*d6c23f6fSyx 		break;
39*d6c23f6fSyx 
40*d6c23f6fSyx 	case FRI_PEERADDR :
41*d6c23f6fSyx 		suffix = "/peer";
42*d6c23f6fSyx 		break;
43*d6c23f6fSyx 
44*d6c23f6fSyx 	case FRI_LOOKUP :
45*d6c23f6fSyx 		suffix = NULL;
46*d6c23f6fSyx 		printlookup((i6addr_t *)addr, (i6addr_t *)mask);
47*d6c23f6fSyx 		break;
48*d6c23f6fSyx 
49*d6c23f6fSyx 	case FRI_NORMAL :
50*d6c23f6fSyx 		printhostmask(v, addr, mask);
51*d6c23f6fSyx 		suffix = NULL;
52*d6c23f6fSyx 		break;
53*d6c23f6fSyx 	default :
54*d6c23f6fSyx 		printf("<%d>", type);
55*d6c23f6fSyx 		printmask(v, mask);
56*d6c23f6fSyx 		suffix = NULL;
57*d6c23f6fSyx 		break;
58*d6c23f6fSyx 	}
59*d6c23f6fSyx 
60*d6c23f6fSyx 	if (suffix != NULL) {
61*d6c23f6fSyx 		printf("%s/%s", ifname, suffix);
62*d6c23f6fSyx 	}
63*d6c23f6fSyx }
64