xref: /freebsd/sbin/ipf/libipf/print_toif.c (revision 963f5dc7a30624e95d72fb7f87b8892651164e46)
1 /*	$FreeBSD$	*/
2 
3 /*
4  * Copyright (C) 2012 by Darren Reed.
5  *
6  * See the IPFILTER.LICENCE file for details on licencing.
7  *
8  * $Id$
9  */
10 
11 #include "ipf.h"
12 
13 
14 void
15 print_toif(family, tag, base, fdp)
16 	int family;
17 	char *tag;
18 	char *base;
19 	frdest_t *fdp;
20 {
21 	switch (fdp->fd_type)
22 	{
23 	case FRD_NORMAL :
24 		PRINTF("%s %s%s", tag, base + fdp->fd_name,
25 		       (fdp->fd_ptr || (long)fdp->fd_ptr == -1) ? "" : "(!)");
26 #ifdef	USE_INET6
27 		if (family == AF_INET6) {
28 			if (IP6_NOTZERO(&fdp->fd_ip6)) {
29 				char ipv6addr[80];
30 
31 				inet_ntop(AF_INET6, &fdp->fd_ip6, ipv6addr,
32 					  sizeof(fdp->fd_ip6));
33 				PRINTF(":%s", ipv6addr);
34 			}
35 		} else
36 #endif
37 			if (fdp->fd_ip.s_addr)
38 				PRINTF(":%s", inet_ntoa(fdp->fd_ip));
39 		putchar(' ');
40 		break;
41 
42 	case FRD_DSTLIST :
43 		PRINTF("%s dstlist/%s ", tag, base + fdp->fd_name);
44 		break;
45 
46 	default :
47 		PRINTF("%s <%d>", tag, fdp->fd_type);
48 		break;
49 	}
50 }
51