summaryrefslogtreecommitdiffstats
path: root/extensions/libct_proto_tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/libct_proto_tcp.c')
-rw-r--r--extensions/libct_proto_tcp.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/extensions/libct_proto_tcp.c b/extensions/libct_proto_tcp.c
index 4cddf53..45ee29b 100644
--- a/extensions/libct_proto_tcp.c
+++ b/extensions/libct_proto_tcp.c
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <getopt.h>
#include <stdlib.h>
+#include <string.h>
#include <netinet/in.h> /* For htons */
#include <linux/netfilter_ipv4/ip_conntrack_tuple.h>
#include <linux/netfilter_ipv4/ip_conntrack.h>
@@ -54,7 +55,7 @@ static const char *states[] = {
"LISTEN"
};
-void help()
+static void help()
{
fprintf(stdout, "--orig-port-src original source port\n");
fprintf(stdout, "--orig-port-dst original destination port\n");
@@ -63,7 +64,7 @@ void help()
fprintf(stdout, "--state TCP state, fe. ESTABLISHED\n");
}
-int parse(char c, char *argv[],
+static int parse(char c, char *argv[],
struct ip_conntrack_tuple *orig,
struct ip_conntrack_tuple *reply,
union ip_conntrack_proto *proto,
@@ -113,7 +114,7 @@ int parse(char c, char *argv[],
return 1;
}
-int final_check(unsigned int flags)
+static int final_check(unsigned int flags)
{
if ((flags & ORIG_SPORT) && (flags & ORIG_DPORT))
return 1;
@@ -123,15 +124,18 @@ int final_check(unsigned int flags)
return 0;
}
-void print_tuple(struct ip_conntrack_tuple *t)
+static void print_tuple(struct ip_conntrack_tuple *t)
{
fprintf(stdout, "sport=%d dport=%d ", ntohs(t->src.u.tcp.port),
ntohs(t->dst.u.tcp.port));
}
-void print_proto(union ip_conntrack_proto *proto)
+static void print_proto(union ip_conntrack_proto *proto)
{
- fprintf(stdout, "[%s] ", states[proto->tcp.state]);
+ if (proto->tcp.state > sizeof(states)/sizeof(char *))
+ fprintf(stdout, "[%u] ", states[proto->tcp.state]);
+ else
+ fprintf(stdout, "[%s] ", states[proto->tcp.state]);
}
static struct ctproto_handler tcp = {
@@ -142,7 +146,7 @@ static struct ctproto_handler tcp = {
.print_proto = print_proto,
.final_check = final_check,
.help = help,
- .opts = opts
+ .opts = opts,
};
void __attribute__ ((constructor)) init(void);