if (!http2_scan(data, length, flush_offset, frame_len, frame_flags, data_offset))
return StreamSplitter::ABORT;
- return http_scan(data, flush_offset);
+ session_data->stream_in_hi = session_data->current_stream[source_id];
+ StreamSplitter::Status status = http_scan(data, flush_offset);
+ session_data->stream_in_hi = NO_STREAM_ID;
+
+ return status;
}
const StreamBuffer Http2DataCutter::reassemble(const uint8_t* data, unsigned len)
{
+ session_data->stream_in_hi = session_data->current_stream[source_id];
+
StreamBuffer frame_buf { nullptr, 0 };
cur_data = cur_padding = cur_data_offset = 0;
bytes_sent_http = reassemble_bytes_sent = 0;
}
+ session_data->stream_in_hi = NO_STREAM_ID;
+
return frame_buf;
}
}
Http2Stream* stream = session_data->get_current_stream(source_id);
+ session_data->stream_in_hi = stream->get_stream_id();
stream->eval_frame(session_data->frame_header[source_id],
session_data->frame_header_size[source_id], session_data->frame_data[source_id],
const SourceId source_id = p->is_from_client() ? SRC_CLIENT : SRC_SERVER;
Http2Stream* stream = session_data->get_current_stream(source_id);
stream->clear_frame();
+ session_data->stream_in_hi = NO_STREAM_ID;
}
#ifdef REG_TEST
*flush_offset = data_offset - 1;
session_data->flushing_data[source_id] = true;
session_data->num_frame_headers[source_id] -= 1;
+ session_data->stream_in_hi = NO_STREAM_ID;
}
bool Http2StreamSplitter::read_frame_hdr(Http2FlowData* session_data, const uint8_t* data,
const uint8_t frame_flags = get_frame_flags(session_data->
scan_frame_header[source_id]);
const uint32_t old_stream = session_data->current_stream[source_id];
- session_data->stream_in_hi = session_data->current_stream[source_id] =
+ session_data->current_stream[source_id] =
get_stream_id(session_data->scan_frame_header[source_id]);
if (session_data->data_processing[source_id] &&