42static void SMBParserRegisterTests(
void);
48 SCRegisterSmbParser();
60static int SMBParserTxCleanupTest(
void)
68 memset(&ssn, 0,
sizeof(ssn));
73 f->
proto = IPPROTO_TCP;
77 char req_str[] =
"\x00\x00\x00\x79\xfe\x53\x4d\x42\x40\x00\x01\x00\x00\x00\x00\x00" \
78 "\x05\x00\xe0\x1e\x10\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00" \
79 "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x72\xd2\x9f\x36\xc2\x08\x14" \
80 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
81 "\x00\x00\x00\x00\x39\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" \
82 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00" \
83 "\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" \
84 "\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
87 STREAM_TOSERVER | STREAM_START, (uint8_t *)req_str,
sizeof(req_str));
91 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
95 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
99 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
103 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
107 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
111 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
115 STREAM_TOSERVER, (uint8_t *)req_str,
sizeof(req_str));
126 char resp_str[] =
"\x00\x00\x00\x98\xfe\x53\x4d\x42\x40\x00\x01\x00\x00\x00\x00\x00" \
127 "\x05\x00\x21\x00\x11\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00" \
128 "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x72\xd2\x9f\x36\xc2\x08\x14" \
129 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
130 "\x00\x00\x00\x00\x59\x00\x00\x00\x01\x00\x00\x00\x48\x38\x40\xb3" \
131 "\x0f\xa8\xd3\x01\x84\x9a\x2b\x46\xf7\xa8\xd3\x01\x48\x38\x40\xb3" \
132 "\x0f\xa8\xd3\x01\x48\x38\x40\xb3\x0f\xa8\xd3\x01\x00\x00\x00\x00" \
133 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00" \
134 "\x00\x00\x00\x00\x9e\x8f\xb8\x91\x00\x00\x00\x00\x01\x5b\x11\xbb" \
135 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
139 STREAM_TOCLIENT | STREAM_START, (uint8_t *)resp_str,
sizeof(resp_str));
143 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
147 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
151 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
155 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
159 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
163 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
175 STREAM_TOCLIENT, (uint8_t *)resp_str,
sizeof(resp_str));
187 STREAM_TOSERVER | STREAM_EOF, (uint8_t *)req_str,
sizeof(req_str));
199 STREAM_TOCLIENT | STREAM_EOF, (uint8_t *)resp_str,
sizeof(resp_str));
216static void SMBParserRegisterTests(
void)
void AppLayerParserRegisterProtocolUnittests(uint8_t ipproto, AppProto alproto, void(*RegisterUnittests)(void))
void AppLayerParserTransactionsCleanup(Flow *f, const uint8_t pkt_dir)
remove obsolete (inspected and logged) transactions
AppLayerParserThreadCtx * AppLayerParserThreadCtxAlloc(void)
Gets a new app layer protocol's parser thread context.
void AppLayerParserThreadCtxFree(AppLayerParserThreadCtx *tctx)
Destroys the app layer parser thread context obtained using AppLayerParserThreadCtxAlloc().
int AppLayerParserParse(ThreadVars *tv, AppLayerParserThreadCtx *alp_tctx, Flow *f, AppProto alproto, uint8_t flags, const uint8_t *input, uint32_t input_len)
void UTHAppLayerParserStateGetIds(void *ptr, uint64_t *i1, uint64_t *i2, uint64_t *log, uint64_t *min)
void RegisterSMBParsers(void)
#define FLOW_SGH_TOCLIENT
#define FLOW_SGH_TOSERVER
AppLayerParserThreadCtx * alp_tctx
#define FAIL_IF_NULL(expr)
Fail a test if expression evaluates to NULL.
void UtRegisterTest(const char *name, int(*TestFn)(void))
Register unit test.
#define FAIL_IF_NOT(expr)
Fail a test if expression evaluates to false.
#define PASS
Pass the test.
void StreamTcpFreeConfig(bool quiet)
void StreamTcpInitConfig(bool)
To initialize the stream global configuration data.
AppProto alproto
application level protocol
AppLayerParserState * alparser
#define STREAMING_BUFFER_CONFIG_INITIALIZER
void UTHFreeFlow(Flow *flow)
Flow * UTHBuildFlow(int family, const char *src, const char *dst, Port sp, Port dp)