From 848c9db4fb9addebfdfe7acaee93deacadca1452 Mon Sep 17 00:00:00 2001 From: Alfredo Cardigliano Date: Wed, 11 Sep 2019 16:10:18 +0200 Subject: Added ndpi_init_serializer_ll() to specify low-level settings for optimizing memory allocations --- src/include/ndpi_api.h | 2 ++ src/lib/ndpi_serializer.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h index fb209fbdb..285629035 100644 --- a/src/include/ndpi_api.h +++ b/src/include/ndpi_api.h @@ -819,6 +819,8 @@ extern "C" { char* ndpi_ssl_version2str(u_int16_t version); /* Serializer */ + int ndpi_init_serializer_ll(ndpi_serializer *serializer, ndpi_serialization_format fmt, + u_int32_t buffer_size); int ndpi_init_serializer(ndpi_serializer *serializer, ndpi_serialization_format fmt); void ndpi_term_serializer(ndpi_serializer *serializer); void ndpi_reset_serializer(ndpi_serializer *serializer); diff --git a/src/lib/ndpi_serializer.c b/src/lib/ndpi_serializer.c index 9e17d7ec9..be57dd9c9 100644 --- a/src/lib/ndpi_serializer.c +++ b/src/lib/ndpi_serializer.c @@ -148,13 +148,14 @@ void ndpi_reset_serializer(ndpi_serializer *_serializer) { /* ********************************** */ -int ndpi_init_serializer(ndpi_serializer *_serializer, - ndpi_serialization_format fmt) { +int ndpi_init_serializer_ll(ndpi_serializer *_serializer, + ndpi_serialization_format fmt, + u_int32_t buffer_size) { ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer; memset(serializer, 0, sizeof(ndpi_private_serializer)); - serializer->buffer_size = 8192; + serializer->buffer_size = buffer_size; serializer->buffer = (u_int8_t *) malloc(serializer->buffer_size * sizeof(u_int8_t)); if(serializer->buffer == NULL) @@ -175,6 +176,13 @@ int ndpi_init_serializer(ndpi_serializer *_serializer, /* ********************************** */ +int ndpi_init_serializer(ndpi_serializer *_serializer, + ndpi_serialization_format fmt) { + return ndpi_init_serializer_ll(_serializer, fmt, 8192); +} + +/* ********************************** */ + char* ndpi_serializer_get_buffer(ndpi_serializer *_serializer, u_int32_t *buffer_len) { ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer; char *buf = (char*)serializer->buffer; -- cgit v1.2.3