summaryrefslogtreecommitdiff
path: root/src/sync-mode.c
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-07-18 20:04:00 +0000
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-07-18 20:04:00 +0000
commit18bbf19becaab7dc4137406928f96ad089192f69 (patch)
treec6d75df8591e20083044cbf07d73e8f6738fd1fd /src/sync-mode.c
parent96084e1a1f2e0a49c961bbddb9fffd2e03bfae3f (diff)
downloadconntrack-tools-18bbf19becaab7dc4137406928f96ad089192f69.tar.gz
conntrack-tools-18bbf19becaab7dc4137406928f96ad089192f69.zip
conntrackd:
- use buffer of MTU size conntrack: - better protocol argument checkings - fix per-protocol filtering, eg. conntrack -[L|E] -p tcp now works - show per-protocol help, ie. conntrack -h -p tcp - add alias --src for --orig-src and alias --dst for --orig-dst
Diffstat (limited to 'src/sync-mode.c')
-rw-r--r--src/sync-mode.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sync-mode.c b/src/sync-mode.c
index f30cb95..917a3b2 100644
--- a/src/sync-mode.c
+++ b/src/sync-mode.c
@@ -86,7 +86,7 @@ retry:
static void mcast_handler()
{
int numbytes, remain;
- char __net[4096], *ptr = __net;
+ char __net[65536], *ptr = __net; /* XXX: maximum MTU for IPv4 */
numbytes = mcast_recv(STATE_SYNC(mcast_server), __net, sizeof(__net));
if (numbytes <= 0)
@@ -173,6 +173,11 @@ static int init_sync(void)
return -1;
}
+ if (mcast_buffered_init(&CONFIG(mcast)) == -1) {
+ dlog(STATE(log), "[FAIL] can't init tx buffer!");
+ return -1;
+ }
+
/* initialization of multicast sequence generation */
STATE_SYNC(last_seq_sent) = time(NULL);
@@ -207,6 +212,8 @@ static void kill_sync()
mcast_server_destroy(STATE_SYNC(mcast_server));
mcast_client_destroy(STATE_SYNC(mcast_client));
+ mcast_buffered_destroy();
+
if (STATE_SYNC(sync)->kill)
STATE_SYNC(sync)->kill();
}