From: Victor Julien Date: Thu, 16 Oct 2014 08:31:47 +0000 (+0200) Subject: stream: clean up pseudo packet counting X-Git-Tag: suricata-2.1beta2~64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4c8084a75b24d159993f34fc7cf254086a2eb57;p=thirdparty%2Fsuricata.git stream: clean up pseudo packet counting Increment the counter from StreamTcpPseudoPacketCreateStreamEndPacket. --- diff --git a/src/stream-tcp.c b/src/stream-tcp.c index 3c74d54a3c..b6f001c1cf 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -101,7 +101,7 @@ void StreamTcpReturnStreamSegments (TcpStream *); void StreamTcpInitConfig(char); int StreamTcpGetFlowState(void *); void StreamTcpSetOSPolicy(TcpStream*, Packet*); -void StreamTcpPseudoPacketCreateStreamEndPacket(Packet *, TcpSession *, PacketQueue *); +void StreamTcpPseudoPacketCreateStreamEndPacket(ThreadVars *tv, StreamTcpThread *stt, Packet *p, TcpSession *ssn, PacketQueue *pq); static int StreamTcpValidateTimestamp(TcpSession * , Packet *); static int StreamTcpHandleTimestamp(TcpSession * , Packet *); @@ -2171,8 +2171,7 @@ static int StreamTcpPacketStateEstablished(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); if (PKT_IS_TOSERVER(p)) { StreamTcpPacketSetState(p, ssn, TCP_CLOSED); @@ -2509,8 +2508,7 @@ static int StreamTcpPacketStateFinWait1(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -2970,8 +2968,7 @@ static int StreamTcpPacketStateFinWait2(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -3281,8 +3278,7 @@ static int StreamTcpPacketStateClosing(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -3464,8 +3460,7 @@ static int StreamTcpPacketStateCloseWait(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -3759,8 +3754,7 @@ static int StreamTcpPacketStateLastAck(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -3887,8 +3881,7 @@ static int StreamTcpPacketStateTimeWait(ThreadVars *tv, Packet *p, return -1; /* force both streams to reassemble, if necessary */ - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); - SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); StreamTcpPacketSetState(p, ssn, TCP_CLOSED); ssn->server.flags |= STREAMTCP_STREAM_FLAG_CLOSE_INITIATED; @@ -3985,7 +3978,7 @@ static int StreamTcpPacketStateTimeWait(ThreadVars *tv, Packet *p, "%" PRIu32 "", ssn, ssn->client.next_seq, ssn->server.last_ack); - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); } else { SCLogDebug("ssn %p: pkt (%" PRIu32 ") is to client: SEQ " "%" PRIu32 ", ACK %" PRIu32 "", ssn, p->payload_len, @@ -4037,7 +4030,7 @@ static int StreamTcpPacketStateTimeWait(ThreadVars *tv, Packet *p, "%" PRIu32 "", ssn, ssn->server.next_seq, ssn->client.last_ack); - StreamTcpPseudoPacketCreateStreamEndPacket(p, ssn, pq); + StreamTcpPseudoPacketCreateStreamEndPacket(tv, stt, p, ssn, pq); } } else { @@ -5480,7 +5473,7 @@ static void StreamTcpPseudoPacketSetupHeader(Packet *np, Packet *p) * \param p real packet * \param pq packet queue to store the new pseudo packet in */ -void StreamTcpPseudoPacketCreateStreamEndPacket(Packet *p, TcpSession *ssn, PacketQueue *pq) +void StreamTcpPseudoPacketCreateStreamEndPacket(ThreadVars *tv, StreamTcpThread *stt, Packet *p, TcpSession *ssn, PacketQueue *pq) { SCEnter(); @@ -5530,6 +5523,7 @@ void StreamTcpPseudoPacketCreateStreamEndPacket(Packet *p, TcpSession *ssn, Pack PacketEnqueue(pq, np); + SCPerfCounterIncr(stt->counter_tcp_pseudo, tv->sc_perf_pca); SCReturn; }