summaryrefslogtreecommitdiffstats
path: root/include/debug.h
blob: 4d1f44f07507d76579ee169ad0bf866be91e7261 (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
51
52
53
54
55
56
57
#ifndef _DEBUG_H
#define _DEBUG_H

#if 0
#define debug printf
#else
#define debug
#endif

#include <string.h>
#include <netinet/in.h>
#include <libnetfilter_conntrack/libnetfilter_conntrack.h>

#undef DEBUG_CT

static inline void debug_ct(struct nf_conntrack *ct, char *msg)
{
#ifdef DEBUG_CT
	struct in_addr addr, addr2, addr3, addr4;

	debug("----%s (%p) ----\n", msg, ct);
	memcpy(&addr, 
	       nfct_get_attr(ct, ATTR_ORIG_IPV4_SRC), 
	       sizeof(u_int32_t));
	memcpy(&addr2, 
	       nfct_get_attr(ct, ATTR_ORIG_IPV4_DST), 
	       sizeof(u_int32_t));
	memcpy(&addr3, 
	       nfct_get_attr(ct, ATTR_REPL_IPV4_SRC), 
	       sizeof(u_int32_t));
	memcpy(&addr4, 
	       nfct_get_attr(ct, ATTR_REPL_IPV4_DST), 
	       sizeof(u_int32_t));

	debug("status: %x\n", nfct_get_attr_u32(ct, ATTR_STATUS));
	debug("l3:%d l4:%d ",
			nfct_get_attr_u8(ct, ATTR_ORIG_L3PROTO),
			nfct_get_attr_u8(ct, ATTR_ORIG_L4PROTO));
	debug("%s:%hu ->", inet_ntoa(addr),
			   ntohs(nfct_get_attr_u16(ct, ATTR_ORIG_PORT_SRC)));
	debug("%s:%hu\n",
			inet_ntoa(addr2),
			ntohs(nfct_get_attr_u16(ct, ATTR_ORIG_PORT_DST)));
	debug("l3:%d l4:%d ",
			nfct_get_attr_u8(ct, ATTR_REPL_L3PROTO),
			nfct_get_attr_u8(ct, ATTR_REPL_L4PROTO));
	debug("%s:%hu ->",
			inet_ntoa(addr3),
			ntohs(nfct_get_attr_u16(ct, ATTR_REPL_PORT_SRC)));
	debug("%s:%hu\n",
			inet_ntoa(addr4),
			ntohs(nfct_get_attr_u16(ct, ATTR_REPL_PORT_DST)));
	debug("-------------------------\n");
#endif
}

#endif