suricata
|
#include "tree.h"
Go to the source code of this file.
Data Structures | |
struct | StreamingBufferConfig_ |
struct | StreamingBufferBlock |
block of continues data More... | |
struct | StreamingBuffer_ |
struct | StreamingBufferSegment_ |
Macros | |
#define | STREAMING_BUFFER_NOFLAGS 0 |
#define | STREAMING_BUFFER_AUTOSLIDE (1<<0) |
#define | STREAMING_BUFFER_CONFIG_INITIALIZER { 0, 0, 0, NULL, NULL, NULL, NULL, } |
#define | STREAMING_BUFFER_INITIALIZER(cfg) { (cfg), 0, NULL, 0, 0, { NULL }, NULL, }; |
Typedefs | |
typedef struct StreamingBufferConfig_ | StreamingBufferConfig |
typedef struct StreamingBuffer_ | StreamingBuffer |
Functions | |
struct StreamingBufferBlock | __attribute__ ((__packed__)) StreamingBufferBlock |
block of continues data More... | |
RB_ENTRY (StreamingBufferBlock) rb | |
int | SBBCompare (struct StreamingBufferBlock *a, struct StreamingBufferBlock *b) |
RB_HEAD (SBB, StreamingBufferBlock) | |
RB_PROTOTYPE (SBB, StreamingBufferBlock, rb, SBBCompare) | |
StreamingBufferBlock * | SBB_RB_FIND_INCLUSIVE (struct SBB *head, StreamingBufferBlock *elm) |
StreamingBuffer * | StreamingBufferInit (const StreamingBufferConfig *cfg) |
void | StreamingBufferClear (StreamingBuffer *sb) |
void | StreamingBufferFree (StreamingBuffer *sb) |
void | StreamingBufferSlide (StreamingBuffer *sb, uint32_t slide) |
void | StreamingBufferSlideToOffset (StreamingBuffer *sb, uint64_t offset) |
slide to absolute offset More... | |
StreamingBufferSegment * | StreamingBufferAppendRaw (StreamingBuffer *sb, const uint8_t *data, uint32_t data_len) WARN_UNUSED |
int | StreamingBufferAppend (StreamingBuffer *sb, StreamingBufferSegment *seg, const uint8_t *data, uint32_t data_len) WARN_UNUSED |
int | StreamingBufferAppendNoTrack (StreamingBuffer *sb, const uint8_t *data, uint32_t data_len) WARN_UNUSED |
add data w/o tracking a segment More... | |
int | StreamingBufferInsertAt (StreamingBuffer *sb, StreamingBufferSegment *seg, const uint8_t *data, uint32_t data_len, uint64_t offset) WARN_UNUSED |
void | StreamingBufferSegmentGetData (const StreamingBuffer *sb, const StreamingBufferSegment *seg, const uint8_t **data, uint32_t *data_len) |
void | StreamingBufferSBBGetData (const StreamingBuffer *sb, const StreamingBufferBlock *sbb, const uint8_t **data, uint32_t *data_len) |
get the data for one SBB More... | |
void | StreamingBufferSBBGetDataAtOffset (const StreamingBuffer *sb, const StreamingBufferBlock *sbb, const uint8_t **data, uint32_t *data_len, uint64_t offset) |
get the data for one SBB More... | |
int | StreamingBufferSegmentCompareRawData (const StreamingBuffer *sb, const StreamingBufferSegment *seg, const uint8_t *rawdata, uint32_t rawdata_len) |
int | StreamingBufferCompareRawData (const StreamingBuffer *sb, const uint8_t *rawdata, uint32_t rawdata_len) |
int | StreamingBufferGetData (const StreamingBuffer *sb, const uint8_t **data, uint32_t *data_len, uint64_t *stream_offset) |
int | StreamingBufferGetDataAtOffset (const StreamingBuffer *sb, const uint8_t **data, uint32_t *data_len, uint64_t offset) |
int | StreamingBufferSegmentIsBeforeWindow (const StreamingBuffer *sb, const StreamingBufferSegment *seg) |
void | StreamingBufferRegisterTests (void) |
Variables | |
uint64_t | offset |
uint32_t | len |
uint32_t | segment_len |
uint64_t | stream_offset |
#define STREAMING_BUFFER_AUTOSLIDE (1<<0) |
Definition at line 66 of file util-streaming-buffer.h.
#define STREAMING_BUFFER_CONFIG_INITIALIZER { 0, 0, 0, NULL, NULL, NULL, NULL, } |
Definition at line 78 of file util-streaming-buffer.h.
#define STREAMING_BUFFER_INITIALIZER | ( | cfg | ) | { (cfg), 0, NULL, 0, 0, { NULL }, NULL, }; |
Definition at line 112 of file util-streaming-buffer.h.
#define STREAMING_BUFFER_NOFLAGS 0 |
Definition at line 65 of file util-streaming-buffer.h.
typedef struct StreamingBuffer_ StreamingBuffer |
typedef struct StreamingBufferConfig_ StreamingBufferConfig |
__attribute__::RB_ENTRY | ( | StreamingBufferBlock | ) |
RB_HEAD | ( | SBB | , |
StreamingBufferBlock | |||
) |
RB_PROTOTYPE | ( | SBB | , |
StreamingBufferBlock | , | ||
rb | , | ||
SBBCompare | |||
) |
StreamingBufferBlock* SBB_RB_FIND_INCLUSIVE | ( | struct SBB * | head, |
StreamingBufferBlock * | elm | ||
) |
Definition at line 79 of file util-streaming-buffer.c.
References head, StreamingBufferBlock::len, StreamingBufferBlock::offset, RB_ROOT, res, and SCLogDebug.
int SBBCompare | ( | struct StreamingBufferBlock * | a, |
struct StreamingBufferBlock * | b | ||
) |
Definition at line 47 of file util-streaming-buffer.c.
References StreamingBufferBlock::len, StreamingBufferBlock::offset, SCLogDebug, and SCReturnInt.
int StreamingBufferAppend | ( | StreamingBuffer * | sb, |
StreamingBufferSegment * | seg, | ||
const uint8_t * | data, | ||
uint32_t | data_len | ||
) |
Definition at line 576 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, and BUG_ON.
Referenced by UTHAddStreamToFlow().
int StreamingBufferAppendNoTrack | ( | StreamingBuffer * | sb, |
const uint8_t * | data, | ||
uint32_t | data_len | ||
) |
add data w/o tracking a segment
Definition at line 619 of file util-streaming-buffer.c.
References StreamingBuffer_::buf.
StreamingBufferSegment* StreamingBufferAppendRaw | ( | StreamingBuffer * | sb, |
const uint8_t * | data, | ||
uint32_t | data_len | ||
) |
Definition at line 535 of file util-streaming-buffer.c.
References StreamingBuffer_::buf.
void StreamingBufferClear | ( | StreamingBuffer * | sb | ) |
Definition at line 132 of file util-streaming-buffer.c.
References StreamingBuffer_::buf_size, and SCLogDebug.
Referenced by StreamingBufferFree(), StreamTcpPruneSession(), and StreamTcpStreamCleanup().
int StreamingBufferCompareRawData | ( | const StreamingBuffer * | sb, |
const uint8_t * | rawdata, | ||
uint32_t | rawdata_len | ||
) |
1 | data is the same |
0 | data is different |
Definition at line 889 of file util-streaming-buffer.c.
References offset, PrintRawDataFp(), SCLogDebug, and StreamingBufferGetData().
Referenced by StreamTcpCheckStreamContents().
void StreamingBufferFree | ( | StreamingBuffer * | sb | ) |
Definition at line 145 of file util-streaming-buffer.c.
References StreamingBuffer_::cfg, FREE, and StreamingBufferClear().
Referenced by HtpBodyFree().
int StreamingBufferGetData | ( | const StreamingBuffer * | sb, |
const uint8_t ** | data, | ||
uint32_t * | data_len, | ||
uint64_t * | stream_offset | ||
) |
Definition at line 849 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_offset, stream_offset, and StreamingBuffer_::stream_offset.
Referenced by StreamingBufferCompareRawData().
int StreamingBufferGetDataAtOffset | ( | const StreamingBuffer * | sb, |
const uint8_t ** | data, | ||
uint32_t * | data_len, | ||
uint64_t | offset | ||
) |
Definition at line 866 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_offset, offset, and StreamingBuffer_::stream_offset.
StreamingBuffer* StreamingBufferInit | ( | const StreamingBufferConfig * | cfg | ) |
Definition at line 112 of file util-streaming-buffer.c.
References StreamingBufferConfig_::buf_size, StreamingBuffer_::buf_size, CALLOC, and StreamingBuffer_::cfg.
int StreamingBufferInsertAt | ( | StreamingBuffer * | sb, |
StreamingBufferSegment * | seg, | ||
const uint8_t * | data, | ||
uint32_t | data_len, | ||
uint64_t | offset | ||
) |
offset | offset relative to StreamingBuffer::stream_offset |
Definition at line 661 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, BUG_ON, and stream_offset.
void StreamingBufferRegisterTests | ( | void | ) |
Definition at line 1477 of file util-streaming-buffer.c.
References UtRegisterTest().
void StreamingBufferSBBGetData | ( | const StreamingBuffer * | sb, |
const StreamingBufferBlock * | sbb, | ||
const uint8_t ** | data, | ||
uint32_t * | data_len | ||
) |
get the data for one SBB
Definition at line 743 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_offset, len, StreamingBufferBlock::len, offset, StreamingBufferBlock::offset, and StreamingBuffer_::stream_offset.
void StreamingBufferSBBGetDataAtOffset | ( | const StreamingBuffer * | sb, |
const StreamingBufferBlock * | sbb, | ||
const uint8_t ** | data, | ||
uint32_t * | data_len, | ||
uint64_t | offset | ||
) |
get the data for one SBB
Definition at line 769 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_size, BUG_ON, StreamingBufferBlock::len, offset, StreamingBufferBlock::offset, and StreamingBuffer_::stream_offset.
int StreamingBufferSegmentCompareRawData | ( | const StreamingBuffer * | sb, |
const StreamingBufferSegment * | seg, | ||
const uint8_t * | rawdata, | ||
uint32_t | rawdata_len | ||
) |
1 | data is the same |
0 | data is different |
Definition at line 833 of file util-streaming-buffer.c.
References StreamingBufferSegmentGetData().
void StreamingBufferSegmentGetData | ( | const StreamingBuffer * | sb, |
const StreamingBufferSegment * | seg, | ||
const uint8_t ** | data, | ||
uint32_t * | data_len | ||
) |
Definition at line 802 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_size, likely, offset, segment_len, and StreamingBuffer_::stream_offset.
Referenced by HtpBodyPrint(), StreamingBufferSegmentCompareRawData(), StreamTcpInlineSegmentCompare(), and StreamTcpInlineSegmentReplacePacket().
int StreamingBufferSegmentIsBeforeWindow | ( | const StreamingBuffer * | sb, |
const StreamingBufferSegment * | seg | ||
) |
Definition at line 731 of file util-streaming-buffer.c.
References StreamingBuffer_::stream_offset.
Referenced by HtpBodyPrune().
void StreamingBufferSlide | ( | StreamingBuffer * | sb, |
uint32_t | slide | ||
) |
Definition at line 522 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_offset, SCLogDebug, and StreamingBuffer_::stream_offset.
void StreamingBufferSlideToOffset | ( | StreamingBuffer * | sb, |
uint64_t | offset | ||
) |
slide to absolute offset
Definition at line 507 of file util-streaming-buffer.c.
References StreamingBuffer_::buf, StreamingBuffer_::buf_offset, offset, SCLogDebug, stream_offset, and StreamingBuffer_::stream_offset.
Referenced by HtpBodyPrune().
uint32_t len |
Definition at line 2 of file util-streaming-buffer.h.
uint64_t offset |
Definition at line 0 of file util-streaming-buffer.h.
Referenced by DecodeCIPPDU(), DecodeCIPRequestMSPPDU(), DecodeCIPResponseMSPPDU(), DecodeENIPPDU(), DetectBytejumpDoMatch(), DetectBytetestDoMatch(), DetectEngineContentInspection(), DetectEngineInspectBufferGeneric(), DetectEngineInspectPktBufferGeneric(), DetectIsdataatSetup(), FileSwfDecompression(), MpmAddPatternCI(), MpmAddPatternCS(), PacketCopyDataOffset(), PrintBufferRawLineHex(), PrintRawJsonFp(), PrintRawLineHexBuf(), PrintRawUriBuf(), PrintRawUriFp(), ROHashInitFinalize(), ROHashLookup(), SCACAddPatternCI(), SCACAddPatternCS(), SCACBSAddPatternCI(), SCACBSAddPatternCS(), SCACSearch(), SCACTileAddPatternCI(), SCACTileAddPatternCS(), SCJsonString(), StreamingBufferCompareRawData(), StreamingBufferGetDataAtOffset(), StreamingBufferSBBGetData(), StreamingBufferSBBGetDataAtOffset(), StreamingBufferSegmentGetData(), and StreamingBufferSlideToOffset().
uint32_t segment_len |
Definition at line 0 of file util-streaming-buffer.h.
Referenced by StreamingBufferSegmentGetData().
uint64_t stream_offset |
Definition at line 1 of file util-streaming-buffer.h.
Referenced by StreamingBufferGetData(), StreamingBufferInsertAt(), and StreamingBufferSlideToOffset().