From 5cb6ddfd221bd8c761d6a54e450e8ba9e920de00 Mon Sep 17 00:00:00 2001 From: Luca Deri Date: Fri, 11 Dec 2020 17:25:43 +0100 Subject: Rule changes work in progress --- src/include/ndpi_typedefs.h | 25 +++++++++++++++++++++++-- src/lib/ndpi_main.c | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index 5c544aef0..20ea2c2ed 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -1571,17 +1571,38 @@ typedef enum { rule_drop } ndpi_rule_action; -typedef struct { +typedef struct _ndpi_rule { + /* Ancillary information */ u_int16_t id; char *description; + + /* Keys */ u_int8_t l4_proto; - ndpi_rule_action action; ndpi_rule_peer client, server; /* Network byte order */ u_int16_t l7_proto; + u_int8_t reverseable_rule:1 /* src <-> dst */, _not_used:7; + + /* Rule actions */ + ndpi_rule_action action; + + /* Internal use */ + struct _ndpi_rule *list_next; /* Linked list of rules */ + } ndpi_rule; +/* + Matching order + - L7 protocol + - match client/server + + */ typedef struct { u_int32_t num_rules; + ndpi_rule *root; + + ndpi_rule *l7_rules[NDPI_LAST_IMPLEMENTED_PROTOCOL], *l7_any; + + } ndpi_rules; #endif /* __NDPI_TYPEDEFS_H__ */ diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index f85538f9f..302a7fc03 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -1691,7 +1691,7 @@ u_int8_t ndpi_is_tor_flow(struct ndpi_detection_module_struct *ndpi_str, struct /* ******************************************* */ -static patricia_node_t *add_to_ptree(patricia_tree_t *tree, int family, void *addr, int bits) { +static patricia_node_t* add_to_ptree(patricia_tree_t *tree, int family, void *addr, int bits) { prefix_t prefix; patricia_node_t *node; -- cgit v1.2.3