1 /* $NetBSD: printnataddr.c,v 1.3 2018/02/04 08:19:42 mrg Exp $ */
2
3 /*
4 * Copyright (C) 2012 by Darren Reed.
5 *
6 * See the IPFILTER.LICENCE file for details on licencing.
7 *
8 * Added redirect stuff and a variety of bug fixes. (mcn@EnGarde.com)
9 */
10
11 #include "ipf.h"
12 #include "kmem.h"
13
14
15 #if !defined(lint)
16 static __attribute__((__used__)) const char rcsid[] = "@(#)Id: printnataddr.c,v 1.1.1.2 2012/07/22 13:44:41 darrenr Exp $";
17 #endif
18
19
20 void
printnataddr(v,base,addr,ifidx)21 printnataddr(v, base, addr, ifidx)
22 int v;
23 char *base;
24 nat_addr_t *addr;
25 int ifidx;
26 {
27 switch (v)
28 {
29 case 4 :
30 if (addr->na_atype == FRI_NORMAL &&
31 addr->na_addr[0].in4.s_addr == 0) {
32 PRINTF("0/%d", count4bits(addr->na_addr[1].in4.s_addr));
33 } else {
34 printaddr(AF_INET, addr->na_atype, base, ifidx,
35 (u_32_t *)&addr->na_addr[0].in4.s_addr,
36 (u_32_t *)&addr->na_addr[1].in4.s_addr);
37 }
38 break;
39 #ifdef USE_INET6
40 case 6 :
41 printaddr(AF_INET6, addr->na_atype, base, ifidx,
42 (u_32_t *)&addr->na_addr[0].in6,
43 (u_32_t *)&addr->na_addr[1].in6);
44 break;
45 #endif
46 default :
47 printf("{v=%d}", v);
48 break;
49 }
50 }
51