]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
json: make membuffer helper public
authorVictor Julien <victor@inliniac.net>
Thu, 18 Feb 2016 09:36:20 +0000 (10:36 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 22 Feb 2016 12:03:00 +0000 (13:03 +0100)
Make json_t to MemBuffer helper public so it can reused.

src/output-json.c
src/output-json.h

index 5e048fe4e7b97f1250f6ad5248aba7bb7d86033b..69e5c577e0d40805fe2837f151a29a6661b3141a 100644 (file)
@@ -333,18 +333,13 @@ json_t *CreateJSONHeaderWithTxId(Packet *p, int direction_sensitive, char *event
     return js;
 }
 
-/* helper struct for the callback */
-typedef struct MemBufferWrapper_ {
-    MemBuffer **buffer;
-} MemBufferWrapper;
-
-static int MemBufferCallback(const char *str, size_t size, void *data)
+int OutputJSONMemBufferCallback(const char *str, size_t size, void *data)
 {
-    MemBufferWrapper *wrapper = data;
+    OutputJSONMemBufferWrapper *wrapper = data;
     MemBuffer **memb = wrapper->buffer;
 
     if (MEMBUFFER_OFFSET(*memb) + size >= MEMBUFFER_SIZE(*memb)) {
-        MemBufferExpand(memb, OUTPUT_BUFFER_SIZE);
+        MemBufferExpand(memb, wrapper->expand_by);
     }
 
     MemBufferWriteRaw((*memb), str, size);
@@ -362,9 +357,12 @@ int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer)
         MemBufferWriteRaw((*buffer), file_ctx->prefix, file_ctx->prefix_len);
     }
 
-    MemBufferWrapper wrapper = { .buffer = buffer };
+    OutputJSONMemBufferWrapper wrapper = {
+        .buffer = buffer,
+        .expand_by = OUTPUT_BUFFER_SIZE
+    };
 
-    int r = json_dump_callback(js, MemBufferCallback, &wrapper,
+    int r = json_dump_callback(js, OutputJSONMemBufferCallback, &wrapper,
             JSON_PRESERVE_ORDER|JSON_COMPACT|JSON_ENSURE_ASCII|
 #ifdef JSON_ESCAPE_SLASH
                             JSON_ESCAPE_SLASH
index edfae89201291ed15b337364e898f080db0ab002..d6b16fd64114d4a2aeece3d468055d94399cd5ba 100644 (file)
 void TmModuleOutputJsonRegister (void);
 
 #ifdef HAVE_LIBJANSSON
+/* helper struct for OutputJSONMemBufferCallback */
+typedef struct OutputJSONMemBufferWrapper_ {
+    MemBuffer **buffer; /**< buffer to use & expand as needed */
+    size_t expand_by;   /**< expand by this size */
+} OutputJSONMemBufferWrapper;
+
+int OutputJSONMemBufferCallback(const char *str, size_t size, void *data);
 
 void CreateJSONFlowId(json_t *js, const Flow *f);
 void JsonTcpFlags(uint8_t flags, json_t *js);