From ad6bfbad4d0b8ae6c0c6b2d58c68eee542110e8a Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Sun, 18 Dec 2022 09:10:57 +0100 Subject: Add protocol disabling feature (#1808) The application may enable only some protocols. Disabling a protocol means: *) don't register/use the protocol dissector code (if any) *) disable classification by-port for such a protocol *) disable string matchings for domains/certificates involving this protocol *) disable subprotocol registration (if any) This feature can be tested with `ndpiReader -B list_of_protocols_to_disable`. Custom protocols are always enabled. Technically speaking, this commit doesn't introduce any API/ABI incompatibility. However, calling `ndpi_set_protocol_detection_bitmask2()` is now mandatory, just after having called `ndpi_init_detection_module()`. Most of the diffs (and all the diffs in `/src/lib/protocols/`) are due to the removing of some function parameters. Fix the low level macro `NDPI_LOG`. This issue hasn't been detected sooner simply because almost all the code uses only the helpers `NDPI_LOG_*` --- tests/unit/unit.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests') diff --git a/tests/unit/unit.c b/tests/unit/unit.c index e1713a7c4..440ffadf4 100644 --- a/tests/unit/unit.c +++ b/tests/unit/unit.c @@ -356,6 +356,7 @@ int main(int argc, char **argv) { #ifndef WIN32 int c; #endif + NDPI_PROTOCOL_BITMASK all; if (ndpi_get_api_version() != NDPI_API_VERSION) { printf("nDPI Library version mismatch: please make sure this code and the nDPI library are in sync\n"); @@ -367,6 +368,10 @@ int main(int argc, char **argv) { if (ndpi_info_mod == NULL) return -1; + NDPI_BITMASK_SET_ALL(all); + ndpi_set_protocol_detection_bitmask2(ndpi_info_mod, &all); + ndpi_finalize_initialization(ndpi_info_mod); + /* * If we want argument parsing on Windows, * we need to re-implement it as Windows has no such function. -- cgit v1.2.3