From: Giuseppe Longo Date: Tue, 10 Feb 2015 14:21:35 +0000 (+0100) Subject: app-layer-smtp: make functions as public X-Git-Tag: suricata-2.1beta4~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d2657becc9bc5e9fea6c0dd2fdc874eaa7e89924;p=thirdparty%2Fsuricata.git app-layer-smtp: make functions as public --- diff --git a/src/app-layer-smtp.c b/src/app-layer-smtp.c index 1a0894f0f9..4bf3e4607e 100644 --- a/src/app-layer-smtp.c +++ b/src/app-layer-smtp.c @@ -291,7 +291,7 @@ static SMTPTransaction *SMTPTransactionCreate(void) return tx; } -static int ProcessDataChunk(const uint8_t *chunk, uint32_t len, +int SMTPProcessDataChunk(const uint8_t *chunk, uint32_t len, MimeDecParseState *state) { int ret = MIME_DEC_OK; @@ -965,7 +965,7 @@ static int SMTPProcessRequest(SMTPState *state, Flow *f, SCMemcmpLowercase("data", state->current_line, 4) == 0) { state->current_command = SMTP_COMMAND_DATA; if (smtp_config.decode_mime) { - tx->mime_state = MimeDecInitParser(f, ProcessDataChunk); + tx->mime_state = MimeDecInitParser(f, SMTPProcessDataChunk); if (tx->mime_state == NULL) { SCLogError(SC_ERR_MEM_ALLOC, "MimeDecInitParser() failed to " "allocate data"); @@ -1080,7 +1080,7 @@ static int SMTPParseServerRecord(Flow *f, void *alstate, * \internal * \brief Function to allocate SMTP state memory. */ -static void *SMTPStateAlloc(void) +void *SMTPStateAlloc(void) { SMTPState *smtp_state = SCMalloc(sizeof(SMTPState)); if (unlikely(smtp_state == NULL)) @@ -4603,7 +4603,7 @@ int SMTPProcessDataChunkTest01(void){ f.flags = FLOW_FILE_NO_STORE_TS; MimeDecParseState *state = MimeDecInitParser(&f, NULL); int ret; - ret = ProcessDataChunk(NULL, 0, state); + ret = SMTPProcessDataChunk(NULL, 0, state); return ret; } @@ -4660,7 +4660,7 @@ int SMTPProcessDataChunkTest02(void){ ((MimeDecEntity *)state->stack->top->data)->ctnt_flags = CTNT_IS_ATTACHMENT; state->body_begin = 1; int ret; - ret = ProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); return ret; @@ -4690,31 +4690,31 @@ int SMTPProcessDataChunkTest03(void){ int ret; state->body_begin = 1; - ret = ProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); if(ret) goto end; state->body_begin = 0; - ret = ProcessDataChunk((uint8_t *)mimemsg2, sizeof(mimemsg2), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg2, sizeof(mimemsg2), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg3, sizeof(mimemsg3), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg3, sizeof(mimemsg3), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg4, sizeof(mimemsg4), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg4, sizeof(mimemsg4), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg5, sizeof(mimemsg5), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg5, sizeof(mimemsg5), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg6, sizeof(mimemsg6), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg6, sizeof(mimemsg6), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg7, sizeof(mimemsg7), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg7, sizeof(mimemsg7), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg8, sizeof(mimemsg8), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg8, sizeof(mimemsg8), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg9, sizeof(mimemsg9), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg9, sizeof(mimemsg9), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg10, sizeof(mimemsg10), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg10, sizeof(mimemsg10), state); if(ret) goto end; - ret = ProcessDataChunk((uint8_t *)mimemsg11, sizeof(mimemsg11), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg11, sizeof(mimemsg11), state); if(ret) goto end; state->body_end = 1; - ret = ProcessDataChunk((uint8_t *)mimemsg12, sizeof(mimemsg12), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg12, sizeof(mimemsg12), state); if(ret) goto end; end: @@ -4743,20 +4743,20 @@ int SMTPProcessDataChunkTest04(void){ int ret = MIME_DEC_OK; state->body_begin = 1; - if(ProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg2, sizeof(mimemsg2), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg3, sizeof(mimemsg3), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg4, sizeof(mimemsg4), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg5, sizeof(mimemsg5), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg6, sizeof(mimemsg6), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg7, sizeof(mimemsg7), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg2, sizeof(mimemsg2), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg3, sizeof(mimemsg3), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg4, sizeof(mimemsg4), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg5, sizeof(mimemsg5), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg6, sizeof(mimemsg6), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg7, sizeof(mimemsg7), state) != 0) goto end; state->body_begin = 0; state->body_end = 1; - if(ProcessDataChunk((uint8_t *)mimemsg8, sizeof(mimemsg8), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg8, sizeof(mimemsg8), state) != 0) goto end; state->body_end = 0; - if(ProcessDataChunk((uint8_t *)mimemsg9, sizeof(mimemsg9), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg10, sizeof(mimemsg10), state) != 0) goto end; - if(ProcessDataChunk((uint8_t *)mimemsg11, sizeof(mimemsg11), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg9, sizeof(mimemsg9), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg10, sizeof(mimemsg10), state) != 0) goto end; + if(SMTPProcessDataChunk((uint8_t *)mimemsg11, sizeof(mimemsg11), state) != 0) goto end; end: return ret; @@ -4779,7 +4779,7 @@ int SMTPProcessDataChunkTest05(void){ state->body_begin = 1; int ret; uint64_t file_size = 0; - ret = ProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); state->body_begin = 0; if(ret){goto end;} SMTPState *smtp_state = (SMTPState *)((Flow *)state->data)->alstate; @@ -4790,7 +4790,7 @@ int SMTPProcessDataChunkTest05(void){ FileDisableStoring(&f, STREAM_TOSERVER); FileDisableMagic(&f, STREAM_TOSERVER); FileDisableMd5(&f, STREAM_TOSERVER); - ret = ProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); + ret = SMTPProcessDataChunk((uint8_t *)mimemsg, sizeof(mimemsg), state); if(ret){goto end;} printf("%u\t%u\n", (uint32_t) file->size, (uint32_t) file_size); if(file->size == file_size){ diff --git a/src/app-layer-smtp.h b/src/app-layer-smtp.h index eca2003180..b11e335b1c 100644 --- a/src/app-layer-smtp.h +++ b/src/app-layer-smtp.h @@ -129,6 +129,11 @@ typedef struct SMTPState_ { } SMTPState; +/* Create SMTP config structure */ +extern SMTPConfig smtp_config; + +int SMTPProcessDataChunk(const uint8_t *chunk, uint32_t len, MimeDecParseState *state); +void *SMTPStateAlloc(void); void RegisterSMTPParsers(void); void SMTPParserRegisterTests(void);