" 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