aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/ndpi_api.h.in1
-rw-r--r--src/include/ndpi_typedefs.h5
-rw-r--r--src/lib/ndpi_utils.c33
3 files changed, 39 insertions, 0 deletions
diff --git a/src/include/ndpi_api.h.in b/src/include/ndpi_api.h.in
index 9bb9a8c73..45eb071d3 100644
--- a/src/include/ndpi_api.h.in
+++ b/src/include/ndpi_api.h.in
@@ -1502,6 +1502,7 @@ extern "C" {
const char* ndpi_risk2str(ndpi_risk_enum risk);
ndpi_risk_severity ndpi_risk2severity(ndpi_risk_enum risk);
+ u_int16_t ndpi_risk2score(ndpi_risk_enum risk);
/* ******************************* */
diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h
index 4c0e4818e..7f7a084e2 100644
--- a/src/include/ndpi_typedefs.h
+++ b/src/include/ndpi_typedefs.h
@@ -114,6 +114,11 @@ typedef enum {
NDPI_RISK_SEVERE
} ndpi_risk_severity;
+#define NDPI_SCORE_RISK_LOW 10
+#define NDPI_SCORE_RISK_MEDIUM 50
+#define NDPI_SCORE_RISK_HIGH 100
+#define NDPI_SCORE_RISK_SEVERE 250
+
/* NDPI_VISIT */
typedef enum {
ndpi_preorder,
diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c
index 07b1cbb02..91055f694 100644
--- a/src/lib/ndpi_utils.c
+++ b/src/lib/ndpi_utils.c
@@ -1839,6 +1839,39 @@ ndpi_risk_severity ndpi_risk2severity(ndpi_risk_enum risk) {
/* ******************************************************************** */
+u_int16_t ndpi_risk2score(ndpi_risk_enum risk) {
+ u_int16_t score = 0;
+ u_int32_t i;
+
+ for(i = 0; i < NDPI_MAX_RISK; i++) {
+ ndpi_risk_enum r = (ndpi_risk_enum)i;
+
+ if(NDPI_ISSET_BIT(risk, r)) {
+ switch(ndpi_risk2severity(r)) {
+ case NDPI_RISK_LOW:
+ score += NDPI_SCORE_RISK_LOW;
+ break;
+
+ case NDPI_RISK_MEDIUM:
+ score += NDPI_SCORE_RISK_MEDIUM;
+ break;
+
+ case NDPI_RISK_HIGH:
+ score += NDPI_SCORE_RISK_HIGH;
+ break;
+
+ case NDPI_RISK_SEVERE:
+ score += NDPI_SCORE_RISK_SEVERE;
+ break;
+ }
+ }
+ }
+
+ return(score);
+}
+
+/* ******************************************************************** */
+
const char* ndpi_http_method2str(ndpi_http_method m) {
switch(m) {
case NDPI_HTTP_METHOD_UNKNOWN: break;