aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_serializer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ndpi_serializer.c')
-rw-r--r--src/lib/ndpi_serializer.c62
1 files changed, 44 insertions, 18 deletions
diff --git a/src/lib/ndpi_serializer.c b/src/lib/ndpi_serializer.c
index b244360b4..84e0697ce 100644
--- a/src/lib/ndpi_serializer.c
+++ b/src/lib/ndpi_serializer.c
@@ -139,6 +139,32 @@ static int ndpi_json_string_escape(const char *src, int src_len, char *dst, int
/* ********************************** */
+#if UNUSED
+/*
+ * Similar to snprintf, this returns the number of bytes actually written
+ * in any case (unlike snprintf which returns, if the output is truncated,
+ * the number of bytes which *would have been* written, and a negative
+ * value on failures)
+ */
+static inline int ndpi_snappend(char *buf, size_t size, const char *fmt, ...) {
+ int wlen;
+ va_list va;
+
+ va_start(va, fmt);
+ wlen = snprintf(buf, size, fmt, va);
+ va_end(va);
+
+ if (wlen < 0)
+ wlen = 0;
+ else if (wlen >= size)
+ wlen = size-1;
+
+ return wlen;
+}
+#endif
+
+/* ********************************** */
+
void ndpi_reset_serializer(ndpi_serializer *_serializer) {
ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer;
@@ -1147,9 +1173,9 @@ int ndpi_serialize_uint32_boolean(ndpi_serializer *_serializer,
/* ********************************** */
-static int ndpi_serialize_binary_int32(ndpi_serializer *_serializer,
- const char *key, u_int16_t klen,
- int32_t value) {
+int ndpi_serialize_binary_int32(ndpi_serializer *_serializer,
+ const char *key, u_int16_t klen,
+ int32_t value) {
ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer;
u_int32_t buff_diff = serializer->buffer.size - serializer->status.buffer.size_used;
u_int32_t needed;
@@ -1297,8 +1323,8 @@ int ndpi_serialize_string_int64(ndpi_serializer *_serializer,
/* ********************************** */
-static int ndpi_serialize_binary_uint32(ndpi_serializer *_serializer,
- const char *key, u_int16_t klen, u_int32_t value) {
+int ndpi_serialize_binary_uint32(ndpi_serializer *_serializer,
+ const char *key, u_int16_t klen, u_int32_t value) {
ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer;
u_int32_t buff_diff = serializer->buffer.size - serializer->status.buffer.size_used;
u_int32_t needed;
@@ -1398,9 +1424,9 @@ int ndpi_serialize_string_uint32_format(ndpi_serializer *_serializer,
/* ********************************** */
-static int ndpi_serialize_binary_uint64(ndpi_serializer *_serializer,
- const char *key, u_int16_t klen,
- u_int64_t value) {
+int ndpi_serialize_binary_uint64(ndpi_serializer *_serializer,
+ const char *key, u_int16_t klen,
+ u_int64_t value) {
ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer;
u_int32_t buff_diff = serializer->buffer.size - serializer->status.buffer.size_used;
u_int32_t needed;
@@ -1471,11 +1497,11 @@ int ndpi_serialize_string_uint64(ndpi_serializer *_serializer,
/* ********************************** */
-static int ndpi_serialize_binary_float(ndpi_serializer *_serializer,
- const char *key,
- u_int16_t klen,
- float value,
- const char *format /* e.f. "%.2f" */) {
+int ndpi_serialize_binary_float(ndpi_serializer *_serializer,
+ const char *key,
+ u_int16_t klen,
+ float value,
+ const char *format /* e.f. "%.2f" */) {
ndpi_private_serializer *serializer = (ndpi_private_serializer*)_serializer;
u_int32_t buff_diff = serializer->buffer.size - serializer->status.buffer.size_used;
u_int32_t needed;
@@ -1606,11 +1632,11 @@ static int ndpi_serialize_binary_raw(ndpi_serializer *_serializer,
/* ********************************** */
/* Key is a <string, len> pair, value is a <string, len> pair */
-static int ndpi_serialize_binary_binary(ndpi_serializer *_serializer,
- const char *key,
- u_int16_t klen,
- const char *_value,
- u_int16_t vlen) {
+int ndpi_serialize_binary_binary(ndpi_serializer *_serializer,
+ const char *key,
+ u_int16_t klen,
+ const char *_value,
+ u_int16_t vlen) {
const char *value = _value ? _value : "";
if(ndpi_is_number(key, klen))