aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlfredo Cardigliano <alfredo.cardigliano@gmail.com>2019-11-19 19:03:06 +0100
committerAlfredo Cardigliano <alfredo.cardigliano@gmail.com>2019-11-19 19:03:06 +0100
commitead0325debc96b2d134a625b4fac184a979ccc5a (patch)
tree9afaf923081359eb3e3fe2a2b0fcb91e16abb27a /src
parent0b819badd2156fa2d959eabb82d52b0082ddc53b (diff)
Rounding up serializer buffer to be divisible by 4 (required by zmq encryption)
Diffstat (limited to 'src')
-rw-r--r--src/include/ndpi_api.h13
-rw-r--r--src/lib/ndpi_serializer.c7
2 files changed, 14 insertions, 6 deletions
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h
index 0b4187ad2..7ad734e85 100644
--- a/src/include/ndpi_api.h
+++ b/src/include/ndpi_api.h
@@ -897,7 +897,7 @@ extern "C" {
const char *key, u_int64_t value);
int ndpi_serialize_string_string(ndpi_serializer *serializer,
const char *key, const char *value);
- int ndpi_serialize_string_binary(ndpi_serializer *_serializer,
+ int ndpi_serialize_string_binary(ndpi_serializer *serializer,
const char *key, const char *_value,
u_int16_t vlen);
int ndpi_serialize_string_float(ndpi_serializer *serializer,
@@ -907,12 +907,13 @@ extern "C" {
const char *key, u_int8_t value);
int ndpi_serialize_end_of_record(ndpi_serializer *serializer);
- int ndpi_serialize_start_of_block(ndpi_serializer *_serializer,
+ int ndpi_serialize_start_of_block(ndpi_serializer *serializer,
const char *key);
- int ndpi_serialize_end_of_block(ndpi_serializer *_serializer);
- char* ndpi_serializer_get_buffer(ndpi_serializer *_serializer, u_int32_t *buffer_len);
- u_int32_t ndpi_serializer_get_buffer_len(ndpi_serializer *_serializer);
- int ndpi_serializer_set_buffer_len(ndpi_serializer *_serializer, u_int32_t l);
+ int ndpi_serialize_end_of_block(ndpi_serializer *serializer);
+ char* ndpi_serializer_get_buffer(ndpi_serializer *serializer, u_int32_t *buffer_len);
+ u_int32_t ndpi_serializer_get_buffer_len(ndpi_serializer *serializer);
+ u_int32_t ndpi_serializer_get_internal_buffer_size(ndpi_serializer *serializer);
+ int ndpi_serializer_set_buffer_len(ndpi_serializer *serializer, u_int32_t l);
void ndpi_serializer_set_csv_separator(ndpi_serializer *serializer, char separator);
void ndpi_serializer_create_snapshot(ndpi_serializer *serializer);
diff --git a/src/lib/ndpi_serializer.c b/src/lib/ndpi_serializer.c
index 6875af342..baacfd403 100644
--- a/src/lib/ndpi_serializer.c
+++ b/src/lib/ndpi_serializer.c
@@ -215,6 +215,12 @@ u_int32_t ndpi_serializer_get_buffer_len(ndpi_serializer *_serializer) {
/* ********************************** */
+u_int32_t ndpi_serializer_get_internal_buffer_size(ndpi_serializer *_serializer) {
+ return(((ndpi_private_serializer*)_serializer)->buffer_size);
+}
+
+/* ********************************** */
+
int ndpi_serializer_set_buffer_len(ndpi_serializer *_serializer, u_int32_t l) {
ndpi_private_serializer *p = (ndpi_private_serializer*)_serializer;
@@ -266,6 +272,7 @@ static inline int ndpi_extend_serializer_buffer(ndpi_serializer *_serializer, u_
}
new_size = serializer->buffer_size + min_len;
+ new_size = ((new_size / 4) + 1) * 4; /* required by zmq encryption */
r = realloc((void *) serializer->buffer, new_size);