]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream-tcp: introduce stream cleanup function
authorVictor Julien <victor@inliniac.net>
Wed, 13 Apr 2016 08:13:50 +0000 (10:13 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 13 Apr 2016 17:04:29 +0000 (19:04 +0200)
src/stream-tcp.c
src/stream-tcp.h

index a7619e5dbdbe3f674b937ac36544c1a145d9203d..f17a761369992e8da6984b64a19a9f98b0b7e70b 100644 (file)
@@ -165,6 +165,14 @@ int StreamTcpCheckMemcap(uint64_t size)
     return 0;
 }
 
+void StreamTcpStreamCleanup(TcpStream *stream)
+{
+    if (stream != NULL) {
+        StreamTcpSackFreeList(stream);
+        StreamTcpReturnStreamSegments(stream);
+    }
+}
+
 /**
  *  \brief Session cleanup function. Does not free the ssn.
  *  \param ssn tcp session
@@ -179,11 +187,8 @@ void StreamTcpSessionCleanup(TcpSession *ssn)
     if (ssn == NULL)
         return;
 
-    StreamTcpSackFreeList(&ssn->client);
-    StreamTcpSackFreeList(&ssn->server);
-
-    StreamTcpReturnStreamSegments(&ssn->client);
-    StreamTcpReturnStreamSegments(&ssn->server);
+    StreamTcpStreamCleanup(&ssn->client);
+    StreamTcpStreamCleanup(&ssn->server);
 
     /* if we have (a) smsg(s), return to the pool */
     smsg = ssn->toserver_smsg_head;
index dc3ccbf6761a8c4ae5db7398349983c525dea5e9..416cd5aa808f7c5ef7efd959bede4d10e9ca257f 100644 (file)
@@ -229,6 +229,9 @@ int StreamTcpPacket (ThreadVars *tv, Packet *p, StreamTcpThread *stt,
 void StreamTcpSessionClear(void *ssnptr);
 /* cleanup ssn, but don't free ssn */
 void StreamTcpSessionCleanup(TcpSession *ssn);
+/* cleanup stream, but don't free the stream */
+void StreamTcpStreamCleanup(TcpStream *stream);
+
 
 uint32_t StreamTcpGetStreamSize(TcpStream *stream);