xref: /titanic_51/usr/src/cmd/ipf/lib/common/printhostmask.c (revision ce0d9371c4da921f289a8bc7fd846d3bf1b8cca7)
1 /*
2  * Copyright (C) 2000-2005 by Darren Reed.
3  *
4  * See the IPFILTER.LICENCE file for details on licencing.
5  *
6  * $Id: printhostmask.c,v 1.8 2002/04/11 15:01:19 darrenr Exp $
7  *
8  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
9  * Use is subject to license terms.
10  */
11 
12 #pragma ident	"%Z%%M%	%I%	%E% SMI"
13 
14 #include "ipf.h"
15 
16 
17 void	printhostmask(v, addr, mask)
18 int	v;
19 u_32_t	*addr, *mask;
20 {
21 #ifdef  USE_INET6
22 	char ipbuf[INET6_ADDRSTRLEN];
23 #else
24 	struct in_addr ipa;
25 #endif
26 
27 	if ((v == 4) && (!*addr) && (!*mask))
28 		printf("any");
29 	else {
30 #ifdef  USE_INET6
31 		void *ptr = addr;
32 		int af;
33 
34 		if (v == 4)
35 			af = AF_INET;
36 		else if (v == 6)
37 			af = AF_INET6;
38 		else
39 			af = 0;
40 		printf("%s", inet_ntop(af, ptr, ipbuf, sizeof(ipbuf)));
41 #else
42 		ipa.s_addr = *addr;
43 		printf("%s", inet_ntoa(ipa));
44 #endif
45 		if (mask != NULL)
46 			printmask(v, mask);
47 	}
48 }
49