streaming: add sbcfg to StreamingBufferSlideToOffset

pull/8426/head
Victor Julien 3 years ago
parent b9540d1073
commit 3b5deb4ec7

@ -187,7 +187,7 @@ void HtpBodyPrune(HtpState *state, HtpBody *body, int direction)
if (left_edge) {
SCLogDebug("sliding body to offset %"PRIu64, left_edge);
StreamingBufferSlideToOffset(body->sb, left_edge);
StreamingBufferSlideToOffset(body->sb, &cfg->sbcfg, left_edge);
}
SCLogDebug("pruning chunks of body %p", body);

@ -936,7 +936,7 @@ void StreamTcpPruneSession(Flow *f, uint8_t flags)
if (!(ssn->flags & STREAMTCP_FLAG_APP_LAYER_DISABLED)) {
AppLayerFramesSlide(f, slide, flags & (STREAM_TOSERVER | STREAM_TOCLIENT));
}
StreamingBufferSlideToOffset(&stream->sb, left_edge);
StreamingBufferSlideToOffset(&stream->sb, &stream_config.sbcnf, left_edge);
stream->base_seq += slide;
if (slide <= stream->app_progress_rel) {

@ -412,7 +412,7 @@ static int FilePruneFile(File *file, const StreamingBufferConfig *cfg)
}
if (left_edge) {
StreamingBufferSlideToOffset(file->sb, left_edge);
StreamingBufferSlideToOffset(file->sb, cfg, left_edge);
}
SCReturnInt(0);

@ -650,7 +650,7 @@ static inline bool RegionContainsOffset(const StreamingBufferRegion *r, const ui
* - no shift
*/
static inline void StreamingBufferSlideToOffsetWithRegions(
StreamingBuffer *sb, const uint64_t slide_offset)
StreamingBuffer *sb, const StreamingBufferConfig *cfg, const uint64_t slide_offset)
{
ListRegions(sb);
BUG_ON(slide_offset == sb->region.stream_offset);
@ -760,7 +760,8 @@ static inline void StreamingBufferSlideToOffsetWithRegions(
* \brief slide to absolute offset
* \todo if sliding beyond window, we could perhaps reset?
*/
void StreamingBufferSlideToOffset(StreamingBuffer *sb, uint64_t offset)
void StreamingBufferSlideToOffset(
StreamingBuffer *sb, const StreamingBufferConfig *cfg, uint64_t offset)
{
SCLogDebug("sliding to offset %" PRIu64, offset);
ListRegions(sb);
@ -769,7 +770,7 @@ void StreamingBufferSlideToOffset(StreamingBuffer *sb, uint64_t offset)
#endif
if (sb->region.next) {
StreamingBufferSlideToOffsetWithRegions(sb, offset);
StreamingBufferSlideToOffsetWithRegions(sb, cfg, offset);
SBBPrune(sb);
SCLogDebug("post SBBPrune");
ListRegions(sb);
@ -1664,7 +1665,7 @@ static int StreamingBufferTest02(void)
FAIL_IF_NOT_NULL(sb->head);
FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree));
StreamingBufferSlideToOffset(sb, 6);
StreamingBufferSlideToOffset(sb, &cfg, 6);
FAIL_IF_NOT_NULL(sb->head);
FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree));
@ -1683,7 +1684,7 @@ static int StreamingBufferTest02(void)
FAIL_IF_NOT_NULL(sb->head);
FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree));
StreamingBufferSlideToOffset(sb, 12);
StreamingBufferSlideToOffset(sb, &cfg, 12);
FAIL_IF(!StreamingBufferSegmentIsBeforeWindow(sb,&seg1));
FAIL_IF(StreamingBufferSegmentIsBeforeWindow(sb,&seg2));
FAIL_IF(StreamingBufferSegmentIsBeforeWindow(sb,&seg3));
@ -1737,7 +1738,7 @@ static int StreamingBufferTest03(void)
FAIL_IF_NOT(sb->sbb_size == 22);
FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree));
StreamingBufferSlideToOffset(sb, 10);
StreamingBufferSlideToOffset(sb, &cfg, 10);
FAIL_IF(!StreamingBufferSegmentIsBeforeWindow(sb,&seg1));
FAIL_IF(StreamingBufferSegmentIsBeforeWindow(sb,&seg2));
FAIL_IF(StreamingBufferSegmentIsBeforeWindow(sb,&seg3));

@ -160,7 +160,8 @@ StreamingBuffer *StreamingBufferInit(const StreamingBufferConfig *cfg);
void StreamingBufferClear(StreamingBuffer *sb);
void StreamingBufferFree(StreamingBuffer *sb);
void StreamingBufferSlideToOffset(StreamingBuffer *sb, uint64_t offset);
void StreamingBufferSlideToOffset(
StreamingBuffer *sb, const StreamingBufferConfig *cfg, uint64_t offset);
StreamingBufferSegment *StreamingBufferAppendRaw(StreamingBuffer *sb,
const uint8_t *data, uint32_t data_len) WARN_UNUSED;

Loading…
Cancel
Save