]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ssh-json: add clean up functions
authorVictor Julien <victor@inliniac.net>
Thu, 10 Apr 2014 07:08:53 +0000 (09:08 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 10 Apr 2014 07:08:53 +0000 (09:08 +0200)
Add clean up functions for the SSH json logger.

src/output-json-ssh.c

index 14cc7231e6a4ebe4568d6f2bcb46ff00b121c30e..43816eb8668155d033189de8b9a00ad3271185db 100644 (file)
@@ -177,6 +177,16 @@ static TmEcode JsonSshLogThreadDeinit(ThreadVars *t, void *data)
     return TM_ECODE_OK;
 }
 
+static void OutputSshLogDeinit(OutputCtx *output_ctx)
+{
+    OutputSshLoggerDisable();
+
+    OutputSshCtx *ssh_ctx = output_ctx->data;
+    LogFileCtx *logfile_ctx = ssh_ctx->file_ctx;
+    LogFileFreeCtx(logfile_ctx);
+    SCFree(ssh_ctx);
+    SCFree(output_ctx);
+}
 
 #define DEFAULT_LOG_FILENAME "ssh.json"
 OutputCtx *OutputSshLogInit(ConfNode *conf)
@@ -214,11 +224,20 @@ OutputCtx *OutputSshLogInit(ConfNode *conf)
     ssh_ctx->file_ctx = file_ctx;
 
     output_ctx->data = ssh_ctx;
-    output_ctx->DeInit = NULL;
+    output_ctx->DeInit = OutputSshLogDeinit;
 
     return output_ctx;
 }
 
+static void OutputSshLogDeinitSub(OutputCtx *output_ctx)
+{
+    OutputSshLoggerDisable();
+
+    OutputSshCtx *ssh_ctx = output_ctx->data;
+    SCFree(ssh_ctx);
+    SCFree(output_ctx);
+}
+
 OutputCtx *OutputSshLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
 {
     AlertJsonThread *ajt = parent_ctx->data;
@@ -242,7 +261,7 @@ OutputCtx *OutputSshLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
     ssh_ctx->file_ctx = ajt->file_ctx;
 
     output_ctx->data = ssh_ctx;
-    output_ctx->DeInit = NULL;
+    output_ctx->DeInit = OutputSshLogDeinitSub;
 
     return output_ctx;
 }