diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/ndpi_api.h.in | 1 | ||||
-rw-r--r-- | src/include/ndpi_typedefs.h | 5 | ||||
-rw-r--r-- | src/lib/ndpi_utils.c | 33 |
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; |