aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_analyze.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ndpi_analyze.c')
-rw-r--r--src/lib/ndpi_analyze.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/lib/ndpi_analyze.c b/src/lib/ndpi_analyze.c
index ce3168165..8facdf371 100644
--- a/src/lib/ndpi_analyze.c
+++ b/src/lib/ndpi_analyze.c
@@ -154,9 +154,22 @@ void ndpi_data_print_window_values(struct ndpi_analyze_struct *s) {
/* ********************************************************************************* */
+/*
+ Upload / download ration
+
+ -1 Download
+ 0 Mixed
+ 1 Upload
+ */
float ndpi_data_ratio(u_int32_t sent, u_int32_t rcvd) {
- int64_t s = (int64_t)sent + (int64_t)rcvd;
- int64_t d = (int64_t)sent - (int64_t)rcvd;
+ float s = (float)((int64_t)sent + (int64_t)rcvd);
+ float d = (float)((int64_t)sent - (int64_t)rcvd);
+
+ return((s == 0) ? 0 : (d/s));
+}
- return((s == 0) ? 0 : ((float)d)/((float)s));
+const char* ndpi_data_ratio2str(float ratio) {
+ if(ratio < -0.2) return("Download");
+ else if(ratio > 0.2) return("Upload");
+ else return("Mixed");
}