diff --git a/nfq/conntrack.c b/nfq/conntrack.c index f006959..3cd7220 100644 --- a/nfq/conntrack.c +++ b/nfq/conntrack.c @@ -126,12 +126,12 @@ static void ConntrackFeedPacket(t_ctrack *t, bool bReverse, const struct tcphdr uint8_t scale; if (tcp_syn_segment(tcphdr)) { - ConntrackInitTrack(t); // erase current entry + if (t->state!=SYN) ConntrackInitTrack(t); // erase current entry t->seq0 = htonl(tcphdr->th_seq); } else if (tcp_synack_segment(tcphdr)) { - ConntrackInitTrack(t); // erase current entry + if (t->state!=SYN) ConntrackInitTrack(t); // erase current entry if (!t->seq0) t->seq0 = htonl(tcphdr->th_ack)-1; t->ack0 = htonl(tcphdr->th_seq); }