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);
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
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);