From 56d87186f7e6d7dba042961be86d1b4b5ae9f2e3 Mon Sep 17 00:00:00 2001 From: Nardi Ivan Date: Sun, 14 Jun 2020 14:42:39 +0200 Subject: Fix compilation with --enable-debug-messages flag NDPI_LOG* macros dereference ndpi_detection_module_struct object which is private to ndpi library (via NDPI_LIB_COMPILATION define). So we can't use them outside the library itself, i.e. in ndpiReader code Therefore, in files in example/, convert all (rare) uses of NDPI_LOG* macros to a new very simple macro, private to ndpiReader program. If necessary, such macro may be improved. According to a comment in ndpi_define.h, each dissector must define its own NDPI_CURRENT_PROTO macro before including ndpi_api.h file --- src/lib/protocols/dnp3.c | 3 +-- src/lib/protocols/http.c | 6 ++++-- src/lib/protocols/iec60870-5-104.c | 3 +-- src/lib/protocols/mining.c | 2 +- src/lib/protocols/modbus.c | 3 +-- src/lib/protocols/nats.c | 3 +-- src/lib/protocols/s7comm.c | 2 +- src/lib/protocols/smb.c | 2 +- 8 files changed, 11 insertions(+), 13 deletions(-) (limited to 'src/lib/protocols') diff --git a/src/lib/protocols/dnp3.c b/src/lib/protocols/dnp3.c index 7d0c17f70..805f8f335 100644 --- a/src/lib/protocols/dnp3.c +++ b/src/lib/protocols/dnp3.c @@ -6,9 +6,8 @@ */ #include "ndpi_protocol_ids.h" -#include "ndpi_api.h" - #define NDPI_CURRENT_PROTO NDPI_PROTOCOL_DNP3 +#include "ndpi_api.h" void ndpi_search_dnp3_tcp(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { diff --git a/src/lib/protocols/http.c b/src/lib/protocols/http.c index 7d54d1470..1032760d8 100644 --- a/src/lib/protocols/http.c +++ b/src/lib/protocols/http.c @@ -589,8 +589,10 @@ static u_int16_t http_request_url_offset(struct ndpi_detection_module_struct *nd int i; NDPI_LOG_DBG2(ndpi_struct, "====>>>> HTTP: %c%c%c%c [len: %u]\n", - non_ctrl(packet->payload[0]), non_ctrl(packet->payload[1]), - non_ctrl(packet->payload[2]), non_ctrl(packet->payload[3]), + packet->payload_packet_len > 0 ? packet->payload[0] : '.', + packet->payload_packet_len > 1 ? packet->payload[1] : '.', + packet->payload_packet_len > 2 ? packet->payload[2] : '.', + packet->payload_packet_len > 3 ? packet->payload[3] : '.', packet->payload_packet_len); /* Check first char */ diff --git a/src/lib/protocols/iec60870-5-104.c b/src/lib/protocols/iec60870-5-104.c index 040a1842a..e5e5325bf 100644 --- a/src/lib/protocols/iec60870-5-104.c +++ b/src/lib/protocols/iec60870-5-104.c @@ -25,9 +25,8 @@ */ #include "ndpi_protocol_ids.h" -#include "ndpi_api.h" - #define NDPI_CURRENT_PROTO NDPI_PROTOCOL_IEC60870 +#include "ndpi_api.h" void ndpi_search_iec60870_tcp(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { diff --git a/src/lib/protocols/mining.c b/src/lib/protocols/mining.c index 78ed9ff29..1f86987fb 100644 --- a/src/lib/protocols/mining.c +++ b/src/lib/protocols/mining.c @@ -21,7 +21,7 @@ * */ #include "ndpi_protocol_ids.h" - +#define NDPI_CURRENT_PROTO NDPI_PROTOCOL_MINING #include "ndpi_api.h" /* ************************************************************************** */ diff --git a/src/lib/protocols/modbus.c b/src/lib/protocols/modbus.c index 2a6dd2a49..c98c71298 100644 --- a/src/lib/protocols/modbus.c +++ b/src/lib/protocols/modbus.c @@ -24,9 +24,8 @@ #include "ndpi_protocol_ids.h" -#include "ndpi_api.h" - #define NDPI_CURRENT_PROTO NDPI_PROTOCOL_MODBUS +#include "ndpi_api.h" void ndpi_search_modbus_tcp(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { diff --git a/src/lib/protocols/nats.c b/src/lib/protocols/nats.c index 300cc838d..da99a36de 100644 --- a/src/lib/protocols/nats.c +++ b/src/lib/protocols/nats.c @@ -20,9 +20,8 @@ */ #include "ndpi_protocol_ids.h" -#include "ndpi_api.h" - #define NDPI_CURRENT_PROTO NDPI_PROTOCOL_NATS +#include "ndpi_api.h" static const char* commands[] = { diff --git a/src/lib/protocols/s7comm.c b/src/lib/protocols/s7comm.c index 7d2b92642..ec32c106e 100644 --- a/src/lib/protocols/s7comm.c +++ b/src/lib/protocols/s7comm.c @@ -21,8 +21,8 @@ * */ #include "ndpi_protocol_ids.h" -#include "ndpi_api.h" #define NDPI_CURRENT_PROTO NDPI_PROTOCOL_S7COMM +#include "ndpi_api.h" void ndpi_search_s7comm_tcp(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { diff --git a/src/lib/protocols/smb.c b/src/lib/protocols/smb.c index b50f59346..a70072853 100644 --- a/src/lib/protocols/smb.c +++ b/src/lib/protocols/smb.c @@ -21,7 +21,7 @@ * */ #include "ndpi_protocol_ids.h" - +#define NDPI_CURRENT_PROTO NDPI_PROTOCOL_SMBV23 #include "ndpi_api.h" -- cgit v1.2.3