aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/ndpi_api.h.in3
-rw-r--r--src/lib/ndpi_main.c20
2 files changed, 20 insertions, 3 deletions
diff --git a/src/include/ndpi_api.h.in b/src/include/ndpi_api.h.in
index 02436b285..f94fd4093 100644
--- a/src/include/ndpi_api.h.in
+++ b/src/include/ndpi_api.h.in
@@ -118,7 +118,8 @@ extern "C" {
void ndpi_free(void *ptr);
void * ndpi_flow_malloc(size_t size);
void ndpi_flow_free(void *ptr);
-
+ u_int32_t ndpi_get_tot_allocated_memory();
+
/**
* Search the first occurrence of substring -find- in -s-
* The search is limited to the first -slen- characters of the string
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 8d88b5c2e..20df63de6 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -139,9 +139,23 @@ static inline uint8_t flow_is_proto(struct ndpi_flow_struct *flow, u_int16_t p)
/* ****************************************** */
+static u_int32_t ndpi_tot_allocated_memory;
+
+/* ****************************************** */
+
+u_int32_t ndpi_get_tot_allocated_memory() {
+ return(ndpi_tot_allocated_memory);
+}
+
+/* ****************************************** */
+
void *ndpi_malloc(size_t size) {
+ ndpi_tot_allocated_memory += size;
return(_ndpi_malloc ? _ndpi_malloc(size) : malloc(size));
}
+
+/* ****************************************** */
+
void *ndpi_flow_malloc(size_t size) {
return(_ndpi_flow_malloc ? _ndpi_flow_malloc(size) : ndpi_malloc(size));
}
@@ -152,9 +166,11 @@ void *ndpi_calloc(unsigned long count, size_t size) {
size_t len = count * size;
void *p = ndpi_malloc(len);
- if(p)
+ if(p) {
memset(p, 0, len);
-
+ ndpi_tot_allocated_memory += size;
+ }
+
return(p);
}