stream: inform app layer of depth reached

pull/3247/head
Victor Julien 8 years ago
parent 7078b4e8e4
commit 9423f6149f

@ -1743,6 +1743,24 @@ int StreamTcpReassembleHandleSegment(ThreadVars *tv, TcpReassemblyThreadCtx *ra_
" p->payload_len %u, STREAMTCP_STREAM_FLAG_NOREASSEMBLY %s",
ssn, stream, p->payload_len,
(stream->flags & STREAMTCP_STREAM_FLAG_NOREASSEMBLY) ? "true" : "false");
}
/* if the STREAMTCP_STREAM_FLAG_DEPTH_REACHED is set, but not the
* STREAMTCP_STREAM_FLAG_NOREASSEMBLY flag, it means the DEPTH flag
* was *just* set. In this case we trigger the AppLayer Truncate
* logic, to inform the applayer no more data in this direction is
* to be expected. */
if ((stream->flags &
(STREAMTCP_STREAM_FLAG_DEPTH_REACHED|STREAMTCP_STREAM_FLAG_NOREASSEMBLY)) ==
STREAMTCP_STREAM_FLAG_DEPTH_REACHED)
{
SCLogDebug("STREAMTCP_STREAM_FLAG_DEPTH_REACHED, truncate applayer");
if (dir != UPDATE_DIR_PACKET) {
SCLogDebug("override: direction now UPDATE_DIR_PACKET so we "
"can trigger Truncate");
dir = UPDATE_DIR_PACKET;
}
}
/* in stream inline mode even if we have no data we call the reassembly

Loading…
Cancel
Save