From acd05b171eee29d50a112179d847371b5466cec1 Mon Sep 17 00:00:00 2001 From: Luca Deri Date: Thu, 16 Jul 2020 11:22:06 +0200 Subject: Added ndpi_data_last() API call --- src/include/ndpi_api.h.in | 1 + src/lib/ndpi_analyze.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/include/ndpi_api.h.in b/src/include/ndpi_api.h.in index 5d77d6221..8e9df55b8 100644 --- a/src/include/ndpi_api.h.in +++ b/src/include/ndpi_api.h.in @@ -1040,6 +1040,7 @@ extern "C" { float ndpi_data_entropy(struct ndpi_analyze_struct *s); float ndpi_data_variance(struct ndpi_analyze_struct *s); float ndpi_data_stddev(struct ndpi_analyze_struct *s); + u_int32_t ndpi_data_last(struct ndpi_analyze_struct *s); u_int32_t ndpi_data_min(struct ndpi_analyze_struct *s); u_int32_t ndpi_data_max(struct ndpi_analyze_struct *s); float ndpi_data_ratio(u_int32_t sent, u_int32_t rcvd); diff --git a/src/lib/ndpi_analyze.c b/src/lib/ndpi_analyze.c index 7d4aa5f47..489b402f6 100644 --- a/src/lib/ndpi_analyze.c +++ b/src/lib/ndpi_analyze.c @@ -112,6 +112,16 @@ float ndpi_data_average(struct ndpi_analyze_struct *s) { /* ********************************************************************************* */ +u_int32_t ndpi_data_last(struct ndpi_analyze_struct *s) { + if((s->num_data_entries == 0) || (s->sum_total == 0)) + return(0); + + if(s->next_value_insert_index == 0) + return(s->values[s->num_values_array_len-1]); + else + return(s->values[s->next_value_insert_index-1]); +} + /* Return min/max on all values */ u_int32_t ndpi_data_min(struct ndpi_analyze_struct *s) { return(s->min_val); } u_int32_t ndpi_data_max(struct ndpi_analyze_struct *s) { return(s->max_val); } -- cgit v1.2.3