output api: complete shutdown functions

Add missing function for Filedata API. Clean up list in all functions.
pull/926/head
Victor Julien 11 years ago
parent b2d29a85e9
commit c27304451e

@ -241,8 +241,10 @@ static TmEcode OutputFileLogThreadDeinit(ThreadVars *tv, void *thread_data) {
tm_module->ThreadDeinit(tv, store->thread_data);
}
OutputLoggerThreadStore *next_store = store->next;
SCFree(store);
store = next_store;
logger = logger->next;
store = store->next;
}
return TM_ECODE_OK;
}
@ -282,8 +284,10 @@ void OutputFileShutdown(void)
{
OutputFileLogger *logger = list;
while (logger) {
if (logger->output_ctx != NULL && logger->output_ctx->DeInit != NULL)
logger->output_ctx->DeInit(logger->output_ctx);
logger = logger->next;
OutputFileLogger *next_logger = logger->next;
SCFree(logger);
logger = next_logger;
}
list = NULL;
}

@ -396,8 +396,10 @@ static TmEcode OutputFiledataLogThreadDeinit(ThreadVars *tv, void *thread_data)
tm_module->ThreadDeinit(tv, store->thread_data);
}
OutputLoggerThreadStore *next_store = store->next;
SCFree(store);
store = next_store;
logger = logger->next;
store = store->next;
}
SCMutexLock(&g_waldo_mutex);
@ -444,3 +446,15 @@ void TmModuleFiledataLoggerRegister (void) {
SC_ATOMIC_INIT(file_id);
}
void OutputFiledataShutdown(void)
{
OutputFiledataLogger *logger = list;
while (logger) {
OutputFiledataLogger *next_logger = logger->next;
SCFree(logger);
logger = next_logger;
}
list = NULL;
}

@ -45,4 +45,6 @@ int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc, Outpu
void TmModuleFiledataLoggerRegister (void);
void OutputFiledataShutdown(void);
#endif /* __OUTPUT_FILE_H__ */

@ -181,8 +181,11 @@ static TmEcode OutputPacketLogThreadDeinit(ThreadVars *tv, void *thread_data) {
tm_module->ThreadDeinit(tv, store->thread_data);
}
OutputLoggerThreadStore *next_store = store->next;
SCFree(store);
store = next_store;
logger = logger->next;
store = store->next;
}
return TM_ECODE_OK;
}
@ -222,11 +225,11 @@ void OutputPacketShutdown(void)
{
OutputPacketLogger *logger = list;
while (logger) {
if (logger->output_ctx != NULL && logger->output_ctx->DeInit != NULL)
logger->output_ctx->DeInit(logger->output_ctx);
logger = logger->next;
OutputPacketLogger *next_logger = logger->next;
SCFree(logger);
logger = next_logger;
}
/* FIXME */
/* reset list pointer */
list = NULL;
}

@ -248,8 +248,10 @@ static TmEcode OutputTxLogThreadDeinit(ThreadVars *tv, void *thread_data) {
tm_module->ThreadDeinit(tv, store->thread_data);
}
OutputLoggerThreadStore *next_store = store->next;
SCFree(store);
store = next_store;
logger = logger->next;
store = store->next;
}
return TM_ECODE_OK;
}
@ -289,8 +291,9 @@ void OutputTxShutdown(void)
{
OutputTxLogger *logger = list;
while (logger) {
if (logger->output_ctx != NULL && logger->output_ctx->DeInit != NULL)
logger->output_ctx->DeInit(logger->output_ctx);
logger = logger->next;
OutputTxLogger *next_logger = logger->next;
SCFree(logger);
logger = next_logger;
}
list = NULL;
}

Loading…
Cancel
Save