summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/lib/print_toif.c
blob: fb4a266318b4cf9e43bbf48eeca04a48ccec39b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*	$FreeBSD$	*/

/*
 * Copyright (C) 2012 by Darren Reed.
 *
 * See the IPFILTER.LICENCE file for details on licencing.
 *
 * $Id$
 */

#include "ipf.h"


void
print_toif(family, tag, base, fdp)
	int family;
	char *tag;
	char *base;
	frdest_t *fdp;
{
	switch (fdp->fd_type)
	{
	case FRD_NORMAL :
		PRINTF("%s %s%s", tag, base + fdp->fd_name,
		       (fdp->fd_ptr || (long)fdp->fd_ptr == -1) ? "" : "(!)");
#ifdef	USE_INET6
		if (family == AF_INET6) {
			if (IP6_NOTZERO(&fdp->fd_ip6)) {
				char ipv6addr[80];

				inet_ntop(AF_INET6, &fdp->fd_ip6, ipv6addr,
					  sizeof(fdp->fd_ip6));
				PRINTF(":%s", ipv6addr);
			}
		} else
#endif
			if (fdp->fd_ip.s_addr)
				PRINTF(":%s", inet_ntoa(fdp->fd_ip));
		putchar(' ');
		break;

	case FRD_DSTLIST :
		PRINTF("%s dstlist/%s ", tag, base + fdp->fd_name);
		break;

	default :
		PRINTF("%s <%d>", tag, fdp->fd_type);
		break;
	}
}
OpenPOWER on IntegriCloud