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
|