From 29e02abc94eaf1bad8f50e0714d95df0c6cee528 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 24 Jan 2011 14:19:11 +0100 Subject: [PATCH] Expand and fix stream unittest helpers. --- src/stream-tcp-util.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/stream-tcp-util.c b/src/stream-tcp-util.c index 48a6e090b9..c77173322d 100644 --- a/src/stream-tcp-util.c +++ b/src/stream-tcp-util.c @@ -70,6 +70,29 @@ void StreamTcpUTClearStream(TcpStream *s) { StreamTcpReturnStreamSegments(s); } +int StreamTcpUTAddSegmentWithPayload(ThreadVars *tv, TcpReassemblyThreadCtx *ra_ctx, TcpStream *stream, uint32_t seq, uint8_t *payload, uint16_t len) { + TcpSegment *s = StreamTcpGetSegment(tv, ra_ctx, len); + if (s == NULL) { + return -1; + } + + s->seq = seq; + s->payload_len = len; + memcpy(s->payload, payload, len); + + Packet *p = UTHBuildPacketReal(s->payload, s->payload_len, IPPROTO_TCP, "1.1.1.1", "2.2.2.2", 1024, 80); + if (p == NULL) { + return -1; + } + p->tcph->th_seq = htonl(seq); + + if (StreamTcpReassembleInsertSegment(tv, ra_ctx, stream, s, p) < 0) + return -1; + + UTHFreePacket(p); + return 0; +} + int StreamTcpUTAddSegmentWithByte(ThreadVars *tv, TcpReassemblyThreadCtx *ra_ctx, TcpStream *stream, uint32_t seq, uint8_t byte, uint16_t len) { TcpSegment *s = StreamTcpGetSegment(tv, ra_ctx, len); if (s == NULL) { @@ -80,7 +103,7 @@ int StreamTcpUTAddSegmentWithByte(ThreadVars *tv, TcpReassemblyThreadCtx *ra_ctx s->payload_len = len; memset(s->payload, byte, len); - Packet *p = UTHBuildPacketReal(s->payload, 5, IPPROTO_TCP, "1.1.1.1", "2.2.2.2", 1024, 80); + Packet *p = UTHBuildPacketReal(s->payload, s->payload_len, IPPROTO_TCP, "1.1.1.1", "2.2.2.2", 1024, 80); if (p == NULL) { return -1; }