int UTHAddSessionToFlow(Flow *f, uint32_t ts_isn, uint32_t tc_isn) { FAIL_IF_NULL(f); TcpSession *ssn = SCCalloc(1, sizeof(*ssn)); FAIL_IF_NULL(ssn); StreamingBuffer x = STREAMING_BUFFER_INITIALIZER(&stream_config.sbcnf); ssn->client.sb = x; ssn->server.sb = x; ssn->client.isn = ts_isn; ssn->server.isn = tc_isn; f->protoctx = ssn; return 1; }
static int StreamingBufferTest05(void) { StreamingBufferConfig cfg = { STREAMING_BUFFER_AUTOSLIDE, 8, 32, NULL, NULL, NULL, NULL }; StreamingBuffer sb = STREAMING_BUFFER_INITIALIZER(&cfg); StreamingBufferSegment *seg1 = StreamingBufferAppendRaw(&sb, (const uint8_t *)"AAAAAAAA", 8); StreamingBufferSegment *seg2 = StreamingBufferAppendRaw(&sb, (const uint8_t *)"BBBBBBBB", 8); StreamingBufferSegment *seg3 = StreamingBufferAppendRaw(&sb, (const uint8_t *)"CCCCCCCC", 8); StreamingBufferSegment *seg4 = StreamingBufferAppendRaw(&sb, (const uint8_t *)"DDDDDDDD", 8); FAIL_IF(sb.stream_offset != 0); FAIL_IF(sb.buf_offset != 32); FAIL_IF(seg1->stream_offset != 0); FAIL_IF(seg2->stream_offset != 8); FAIL_IF(seg3->stream_offset != 16); FAIL_IF(seg4->stream_offset != 24); FAIL_IF(StreamingBufferSegmentIsBeforeWindow(&sb,seg1)); FAIL_IF(StreamingBufferSegmentIsBeforeWindow(&sb,seg2)); FAIL_IF(StreamingBufferSegmentIsBeforeWindow(&sb,seg3)); FAIL_IF(StreamingBufferSegmentIsBeforeWindow(&sb,seg4)); FAIL_IF(!StreamingBufferSegmentCompareRawData(&sb,seg1,(const uint8_t *)"AAAAAAAA", 8)); FAIL_IF(!StreamingBufferSegmentCompareRawData(&sb,seg2,(const uint8_t *)"BBBBBBBB", 8)); FAIL_IF(!StreamingBufferSegmentCompareRawData(&sb,seg3,(const uint8_t *)"CCCCCCCC", 8)); FAIL_IF(!StreamingBufferSegmentCompareRawData(&sb,seg4,(const uint8_t *)"DDDDDDDD", 8)); Dump(&sb); StreamingBufferSegment *seg5 = StreamingBufferAppendRaw(&sb, (const uint8_t *)"EEEEEEEE", 8); FAIL_IF(!StreamingBufferSegmentCompareRawData(&sb,seg5,(const uint8_t *)"EEEEEEEE", 8)); Dump(&sb); SCFree(seg1); SCFree(seg2); SCFree(seg3); SCFree(seg4); SCFree(seg5); StreamingBufferClear(&sb); PASS; }