]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
eve: refactor OutputJsonBuilderBuffer to take context 6060/head
authorJason Ish <jason.ish@oisf.net>
Thu, 15 Apr 2021 20:59:28 +0000 (14:59 -0600)
committerJason Ish <jason.ish@oisf.net>
Thu, 15 Apr 2021 22:23:18 +0000 (16:23 -0600)
All callers of OutputJsonBuilderBuffer are now calling it
using fields from an OutputJsonThreadCtx, so just pass
a pointer to the thread context now.

31 files changed:
src/output-json-alert.c
src/output-json-anomaly.c
src/output-json-dcerpc.c
src/output-json-dhcp.c
src/output-json-dnp3.c
src/output-json-dns.c
src/output-json-drop.c
src/output-json-file.c
src/output-json-flow.c
src/output-json-ftp.c
src/output-json-http.c
src/output-json-http2.c
src/output-json-ike.c
src/output-json-krb5.c
src/output-json-metadata.c
src/output-json-mqtt.c
src/output-json-netflow.c
src/output-json-nfs.c
src/output-json-rdp.c
src/output-json-rfb.c
src/output-json-sip.c
src/output-json-smb.c
src/output-json-smtp.c
src/output-json-snmp.c
src/output-json-ssh.c
src/output-json-template-rust.c
src/output-json-template.c
src/output-json-tftp.c
src/output-json-tls.c
src/output-json.c
src/output-json.h

index f3ef0b5f590f973d6108ae30fa56b1d112b8f126..81d71631d34bfba99c23cf65fbc69f1ac18c8831 100644 (file)
@@ -712,7 +712,7 @@ static int AlertJson(ThreadVars *tv, JsonAlertLogThread *aft, const Packet *p)
             jb_set_string(jb, "xff", xff_buffer);
         }
 
-        OutputJsonBuilderBuffer(jb, aft->ctx->file_ctx, &aft->ctx->buffer);
+        OutputJsonBuilderBuffer(jb, aft->ctx);
         jb_free(jb);
     }
 
@@ -722,7 +722,7 @@ static int AlertJson(ThreadVars *tv, JsonAlertLogThread *aft, const Packet *p)
                 CreateEveHeader(p, LOG_DIR_PACKET, "packet", NULL, json_output_ctx->eve_ctx);
         if (unlikely(packetjs != NULL)) {
             EvePacket(p, packetjs, 0);
-            OutputJsonBuilderBuffer(packetjs, aft->ctx->file_ctx, &aft->ctx->buffer);
+            OutputJsonBuilderBuffer(packetjs, aft->ctx);
             jb_free(packetjs);
         }
     }
@@ -756,7 +756,7 @@ static int AlertJsonDecoderEvent(ThreadVars *tv, JsonAlertLogThread *aft, const
 
         AlertJsonHeader(json_output_ctx, p, pa, jb, json_output_ctx->flags, NULL);
 
-        OutputJsonBuilderBuffer(jb, aft->ctx->file_ctx, &aft->ctx->buffer);
+        OutputJsonBuilderBuffer(jb, aft->ctx);
         jb_free(jb);
     }
 
index 69c3a8ca23cfe0722180e64c2454a9ffd324d28a..172e2eb80e1d6c5f92f81ac3b836b662f2f87c4d 100644 (file)
@@ -145,7 +145,7 @@ static int AnomalyDecodeEventJson(ThreadVars *tv, JsonAnomalyLogThread *aft,
             EvePacket(p, js, GET_PKT_LEN(p) < 32 ? GET_PKT_LEN(p) : 32);
         }
 
-        OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+        OutputJsonBuilderBuffer(js, aft->ctx);
         jb_free(js);
     }
 
@@ -203,7 +203,7 @@ static int AnomalyAppLayerDecoderEventJson(JsonAnomalyLogThread *aft,
 
         /* anomaly */
         jb_close(js);
-        OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+        OutputJsonBuilderBuffer(js, aft->ctx);
         jb_free(js);
 
         /* Current implementation assumes a single owner for this value */
index 67bf7c93fc64f61351a70622930d47f2807ca555..6b27d7dbbd690e4df3ffd7b823edab8472b3ab81 100644 (file)
@@ -64,7 +64,7 @@ static int JsonDCERPCLogger(ThreadVars *tv, void *thread_data,
     jb_close(jb);
 
     MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
 
     jb_free(jb);
     return TM_ECODE_OK;
index ff435c4e35fd1a54993138ad786b63570b185960..35846f4e3e7b2e164e5feba5807ec90c436c0088 100644 (file)
@@ -73,7 +73,7 @@ static int JsonDHCPLogger(ThreadVars *tv, void *thread_data,
 
     rs_dhcp_logger_log(ctx->rs_logger, tx, js);
 
-    OutputJsonBuilderBuffer(js, thread->thread->file_ctx, &thread->thread->buffer);
+    OutputJsonBuilderBuffer(js, thread->thread);
     jb_free(js);
 
     return TM_ECODE_OK;
index 0bc7cae66df430c628d7ed2dc464724e4d9f0e0d..aead12cfd3a55e1aa3c67b895ce5afe9163f2b3d 100644 (file)
@@ -216,9 +216,6 @@ static int JsonDNP3LoggerToServer(ThreadVars *tv, void *thread_data,
     LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
     DNP3Transaction *tx = vtx;
 
-    MemBuffer *buffer = (MemBuffer *)thread->ctx->buffer;
-
-    MemBufferReset(buffer);
     if (tx->has_request && tx->request_done) {
         JsonBuilder *js =
                 CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
@@ -229,7 +226,7 @@ static int JsonDNP3LoggerToServer(ThreadVars *tv, void *thread_data,
         jb_open_object(js, "dnp3");
         JsonDNP3LogRequest(js, tx);
         jb_close(js);
-        OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &buffer);
+        OutputJsonBuilderBuffer(js, thread->ctx);
         jb_free(js);
     }
 
@@ -243,9 +240,6 @@ static int JsonDNP3LoggerToClient(ThreadVars *tv, void *thread_data,
     LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
     DNP3Transaction *tx = vtx;
 
-    MemBuffer *buffer = (MemBuffer *)thread->ctx->buffer;
-
-    MemBufferReset(buffer);
     if (tx->has_response && tx->response_done) {
         JsonBuilder *js =
                 CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
@@ -256,7 +250,7 @@ static int JsonDNP3LoggerToClient(ThreadVars *tv, void *thread_data,
         jb_open_object(js, "dnp3");
         JsonDNP3LogResponse(js, tx);
         jb_close(js);
-        OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &buffer);
+        OutputJsonBuilderBuffer(js, thread->ctx);
         jb_free(js);
     }
 
index 940a1f9c1782dc7062d7b943b2dc76dbe97628cf..ce74856cfb0f46bfecb949442a4d65e67df39c34 100644 (file)
@@ -328,7 +328,7 @@ static int JsonDnsLoggerToServer(ThreadVars *tv, void *thread_data,
         }
         jb_close(jb);
 
-        OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
+        OutputJsonBuilderBuffer(jb, td->ctx);
         jb_free(jb);
     }
 
@@ -357,7 +357,7 @@ static int JsonDnsLoggerToClient(ThreadVars *tv, void *thread_data,
             jb_open_object(jb, "dns");
             rs_dns_log_json_answer(txptr, td->dnslog_ctx->flags, jb);
             jb_close(jb);
-            OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
+            OutputJsonBuilderBuffer(jb, td->ctx);
             jb_free(jb);
         }
     } else {
@@ -377,7 +377,7 @@ static int JsonDnsLoggerToClient(ThreadVars *tv, void *thread_data,
             jb_set_object(jb, "dns", answer);
             jb_free(answer);
 
-            OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
+            OutputJsonBuilderBuffer(jb, td->ctx);
             jb_free(jb);
         }
         /* Log authorities. */
@@ -396,7 +396,7 @@ static int JsonDnsLoggerToClient(ThreadVars *tv, void *thread_data,
             jb_set_object(jb, "dns", answer);
             jb_free(answer);
 
-            OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
+            OutputJsonBuilderBuffer(jb, td->ctx);
             jb_free(jb);
         }
     }
index 4afc9dd8590c5dc2b27fcf7b2b38a8b365872a09..e13da042360e40e53d71afef171b638aade32261 100644 (file)
@@ -168,7 +168,7 @@ static int DropLogJSON (JsonDropLogThread *aft, const Packet *p)
         }
     }
 
-    OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+    OutputJsonBuilderBuffer(js, aft->ctx);
     jb_free(js);
 
     return TM_ECODE_OK;
index 466cc78f32d2daa84d56e8866a6e678986bd9f99..dabcaab58d6cd1686b452110359b87b59f8d6c52 100644 (file)
@@ -212,7 +212,7 @@ static void FileWriteJsonRecord(JsonFileLogThread *aft, const Packet *p, const F
         return;
     }
 
-    OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+    OutputJsonBuilderBuffer(js, aft->ctx);
     jb_free(js);
 }
 
index 69eccf3ab2c3b119b4ef983cf92f63d6a8a084ee..4025480fffff3c4d7d278500b652554d17f24e32 100644 (file)
@@ -325,7 +325,7 @@ static int JsonFlowLogger(ThreadVars *tv, void *thread_data, Flow *f)
 
     EveFlowLogJSON(thread, jb, f);
 
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
     jb_free(jb);
 
     SCReturnInt(TM_ECODE_OK);
index bef33a1d0dd790e9ce25ce6185e30c239cb68611..3c27d95c8d29b91f535f5731caf275baf6cb78d0 100644 (file)
@@ -163,8 +163,7 @@ static int JsonFTPLogger(ThreadVars *tv, void *thread_data,
             goto fail;
         }
 
-        MemBufferReset(thread->buffer);
-        OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+        OutputJsonBuilderBuffer(jb, thread);
 
         jb_free(jb);
     }
index 8ae9e6a7625180f2031570d14a1ae030ee0937ba..bc38254d3be4544e22b8e0240045c6dc410b060c 100644 (file)
@@ -512,7 +512,7 @@ static int JsonHttpLogger(ThreadVars *tv, void *thread_data, const Packet *p, Fl
         }
     }
 
-    OutputJsonBuilderBuffer(js, jhl->ctx->file_ctx, &jhl->ctx->buffer);
+    OutputJsonBuilderBuffer(js, jhl->ctx);
     jb_free(js);
 
     SCReturnInt(TM_ECODE_OK);
index 066bd0461e8f877d9c455ccd4824ce0d95c38127..7e57c719360401e42dac6665057353496a941eb2 100644 (file)
@@ -95,7 +95,7 @@ static int JsonHttp2Logger(ThreadVars *tv, void *thread_data, const Packet *p,
         goto end;
     }
     jb_close(js);
-    OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+    OutputJsonBuilderBuffer(js, aft->ctx);
 end:
     jb_free(js);
     return 0;
index 5052debfdd17d5e21a18c56e424a394de332fb4d..5093e55db31ca5cf2226dcfdee9b463f506b829f 100644 (file)
@@ -91,7 +91,7 @@ static int JsonIKELogger(ThreadVars *tv, void *thread_data, const Packet *p, Flo
         goto error;
     }
 
-    OutputJsonBuilderBuffer(jb, thread->ctx->file_ctx, &thread->ctx->buffer);
+    OutputJsonBuilderBuffer(jb, thread->ctx);
 
     jb_free(jb);
     return TM_ECODE_OK;
index 6fb6ed1c2b7c8164f78935f00a702f89595714c1..f3200cbe44c91d467beb396ae2293fa20c3ef48c 100644 (file)
@@ -66,8 +66,7 @@ static int JsonKRB5Logger(ThreadVars *tv, void *thread_data,
     }
     jb_close(jb);
 
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
 
     jb_free(jb);
     return TM_ECODE_OK;
index d1ae81cdfc688f19ba0a5e4081024ba2d62b6d97..a2a8a5f85aae7e260a6945d933bb3caadf37b62e 100644 (file)
@@ -76,7 +76,7 @@ static int MetadataJson(ThreadVars *tv, OutputJsonThreadCtx *aft, const Packet *
     if (!aft->ctx->cfg.include_metadata) {
         EveAddMetadata(p, p->flow, js);
     }
-    OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->buffer);
+    OutputJsonBuilderBuffer(js, aft);
 
     jb_free(js);
     return TM_ECODE_OK;
index 4c54231bcfa7c5f630bf77adb12c592714d64117..76f4e9f47b71c04d37bfa2b519eb8c2341534b19 100644 (file)
@@ -93,7 +93,7 @@ static int JsonMQTTLogger(ThreadVars *tv, void *thread_data,
     if (!rs_mqtt_logger_log(state, tx, thread->mqttlog_ctx->flags, js))
         goto error;
 
-    OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
+    OutputJsonBuilderBuffer(js, thread->ctx);
     jb_free(js);
 
     return TM_ECODE_OK;
index a5676ca98aef253b3e4403ac21a0b79fff65e08f..16267a9f3b58341aee1d0b4e20ac79fc716c6e8d 100644 (file)
@@ -270,26 +270,22 @@ static int JsonNetFlowLogger(ThreadVars *tv, void *thread_data, Flow *f)
     SCEnter();
     OutputJsonThreadCtx *jhl = thread_data;
 
-    /* reset */
-    MemBufferReset(jhl->buffer);
     JsonBuilder *jb = CreateEveHeaderFromNetFlow(f, 0);
     if (unlikely(jb == NULL))
         return TM_ECODE_OK;
     NetFlowLogEveToServer(jb, f);
     EveAddCommonOptions(&jhl->ctx->cfg, NULL, f, jb);
-    OutputJsonBuilderBuffer(jb, jhl->file_ctx, &jhl->buffer);
+    OutputJsonBuilderBuffer(jb, jhl);
     jb_free(jb);
 
     /* only log a response record if we actually have seen response packets */
     if (f->tosrcpktcnt) {
-        /* reset */
-        MemBufferReset(jhl->buffer);
         jb = CreateEveHeaderFromNetFlow(f, 1);
         if (unlikely(jb == NULL))
             return TM_ECODE_OK;
         NetFlowLogEveToClient(jb, f);
         EveAddCommonOptions(&jhl->ctx->cfg, NULL, f, jb);
-        OutputJsonBuilderBuffer(jb, jhl->file_ctx, &jhl->buffer);
+        OutputJsonBuilderBuffer(jb, jhl);
         jb_free(jb);
     }
     SCReturnInt(TM_ECODE_OK);
index d45eb3f2eac41b7906f9a9452ded8499c704be31..088c99b6f86319a809e25777945b934b7ca23068 100644 (file)
@@ -95,7 +95,7 @@ static int JsonNFSLogger(ThreadVars *tv, void *thread_data,
     jb_close(jb);
 
     MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
     jb_free(jb);
     return TM_ECODE_OK;
 }
index 7ae854e446e9bb416fe593b5a062bf0fb346a464..69c0b460f5ab2fb52325277e28d16086d7a86aa0 100644 (file)
@@ -56,8 +56,7 @@ static int JsonRdpLogger(ThreadVars *tv, void *thread_data,
         jb_free(js);
         return TM_ECODE_FAILED;
     }
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(js, thread);
 
     jb_free(js);
     return TM_ECODE_OK;
index f42e0bebf7e726009558d4efeb5e9f9e2b853661..e3d87841e81477b387df195d4c21d180d13dc24a 100644 (file)
@@ -73,8 +73,7 @@ static int JsonRFBLogger(ThreadVars *tv, void *thread_data,
         goto error;
     }
 
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(js, thread);
     jb_free(js);
 
     return TM_ECODE_OK;
index 3297f787280e828963a2a58b736f01a82f606f81..fa0f0a12ee0563972cca1c0b565850cb77e8c249 100644 (file)
@@ -75,8 +75,7 @@ static int JsonSIPLogger(ThreadVars *tv, void *thread_data,
         goto error;
     }
 
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(js, thread);
     jb_free(js);
 
     return TM_ECODE_OK;
index 7d54f57f70eba4ead2b103a3222867ca487c5e12..780f903cc487a43e77dbb424a9c5754b6c082352 100644 (file)
@@ -75,9 +75,7 @@ static int JsonSMBLogger(ThreadVars *tv, void *thread_data,
     }
     jb_close(jb);
 
-    EveAddCommonOptions(&thread->ctx->cfg, p, f, jb);
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
 
     jb_free(jb);
     return TM_ECODE_OK;
index a02dd1f8169889f149b9d61aad91e6417a32dbfb..59043518bdd15d70eebdd935f786a3c0d92fa81d 100644 (file)
@@ -86,7 +86,7 @@ static int JsonSmtpLogger(ThreadVars *tv, void *thread_data, const Packet *p, Fl
     jb_close(jb);
 
     if (EveEmailLogJson(jhl, jb, p, f, state, tx, tx_id) == TM_ECODE_OK) {
-        OutputJsonBuilderBuffer(jb, jhl->ctx->file_ctx, &jhl->ctx->buffer);
+        OutputJsonBuilderBuffer(jb, jhl->ctx);
     }
 
     jb_free(jb);
index fb194f6615c7430a087dc39a3cc5d8abeafa3779..6c86fcbe074b8e25c83f52497deeee27824fcb09 100644 (file)
@@ -66,8 +66,7 @@ static int JsonSNMPLogger(ThreadVars *tv, void *thread_data,
     }
     jb_close(jb);
 
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
 
     jb_free(jb);
     return TM_ECODE_OK;
index f9f10ab9770492d3c1e79b83bb2b142b11c93e52..ec649abf4f9c7ecd8ced8b15e2b30a2fe7771a25 100644 (file)
@@ -66,15 +66,12 @@ static int JsonSshLogger(ThreadVars *tv, void *thread_data, const Packet *p,
     if (unlikely(js == NULL))
         return 0;
 
-    /* reset */
-    MemBufferReset(thread->buffer);
-
     jb_open_object(js, "ssh");
     if (!rs_ssh_log_json(txptr, js)) {
         goto end;
     }
     jb_close(js);
-    OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(js, thread);
 
 end:
     jb_free(js);
index 4ef3aef9f8ebc2286d5d7177e57b171bde5f35bb..33280f740ce2d2b608cc23057565661d7206ce02 100644 (file)
@@ -82,7 +82,7 @@ static int JsonTemplateLogger(ThreadVars *tv, void *thread_data,
     }
     jb_close(js);
 
-    OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
+    OutputJsonBuilderBuffer(js, thread->ctx);
     jb_free(js);
 
     return TM_ECODE_OK;
index 584d1e88a5664dad6b064c8c929d968eaa6cfcb3..2e9907808cb2f35e7ebdc5b2fb426f22a8b419d3 100644 (file)
@@ -94,7 +94,7 @@ static int JsonTemplateLogger(ThreadVars *tv, void *thread_data,
     /* Close template. */
     jb_close(js);
 
-    OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
+    OutputJsonBuilderBuffer(js, thread->ctx);
 
     jb_free(js);
     return TM_ECODE_OK;
index a5edfe48f86c3906b0cd2b2de4860e902e91b490..ceaebde958811d4243988fac5718b4a3d9af250f 100644 (file)
@@ -66,8 +66,7 @@ static int JsonTFTPLogger(ThreadVars *tv, void *thread_data,
     }
     jb_close(jb);
 
-    MemBufferReset(thread->buffer);
-    OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+    OutputJsonBuilderBuffer(jb, thread);
 
     jb_free(jb);
     return TM_ECODE_OK;
index 5a1fe36b4a02b76c4c9e84e39791e41184b6c3c7..c5078e4530fd85022d7f760da5f03b0f02c0690e 100644 (file)
@@ -442,7 +442,7 @@ static int JsonTlsLogger(ThreadVars *tv, void *thread_data, const Packet *p,
     /* Close the tls object. */
     jb_close(js);
 
-    OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
+    OutputJsonBuilderBuffer(js, aft->ctx);
     jb_free(js);
 
     return 0;
index 2005031c6293e0c4e6fee18c8bfe14b2c5a633ec..e356b6851e77385ab64eca950c8191d9e4eedb36 100644 (file)
@@ -971,8 +971,10 @@ int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer)
     return 0;
 }
 
-int OutputJsonBuilderBuffer(JsonBuilder *js, LogFileCtx *file_ctx, MemBuffer **buffer)
+int OutputJsonBuilderBuffer(JsonBuilder *js, OutputJsonThreadCtx *ctx)
 {
+    LogFileCtx *file_ctx = ctx->file_ctx;
+    MemBuffer **buffer = &ctx->buffer;
     if (file_ctx->sensor_name) {
         jb_set_string(js, "host", file_ctx->sensor_name);
     }
index 0ecd5e7b8d9b64be249d486a5474ef14ab49eda2..c621f366928b505d5a94687740168091ce4d274f 100644 (file)
@@ -103,7 +103,7 @@ JsonBuilder *CreateEveHeader(const Packet *p, enum OutputJsonLogDirection dir,
 JsonBuilder *CreateEveHeaderWithTxId(const Packet *p, enum OutputJsonLogDirection dir,
         const char *event_type, JsonAddrInfo *addr, uint64_t tx_id, OutputJsonCtx *eve_ctx);
 int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer);
-int OutputJsonBuilderBuffer(JsonBuilder *js, LogFileCtx *file_ctx, MemBuffer **buffer);
+int OutputJsonBuilderBuffer(JsonBuilder *js, OutputJsonThreadCtx *ctx);
 OutputInitResult OutputJsonInitCtx(ConfNode *);
 
 OutputInitResult OutputJsonLogInitSub(ConfNode *conf, OutputCtx *parent_ctx);