aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/ndpiReader.c4
-rw-r--r--example/ndpi_util.c2
-rw-r--r--src/lib/ndpi_main.c7
-rw-r--r--src/lib/protocols/rx.c5
4 files changed, 11 insertions, 7 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index f558d7b0d..1939d70cd 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -769,7 +769,9 @@ static void printResults(u_int64_t tot_usec) {
memset(&cumulative_stats, 0, sizeof(cumulative_stats));
for(thread_id = 0; thread_id < num_threads; thread_id++) {
- if(ndpi_thread_info[thread_id].workflow->stats.total_wire_bytes == 0) continue;
+ if((ndpi_thread_info[thread_id].workflow->stats.total_wire_bytes == 0)
+ && (ndpi_thread_info[thread_id].workflow->stats.raw_packet_count == 0))
+ continue;
for(i=0; i<NUM_ROOTS; i++)
ndpi_twalk(ndpi_thread_info[thread_id].workflow->ndpi_flows_root[i], node_proto_guess_walker, &thread_id);
diff --git a/example/ndpi_util.c b/example/ndpi_util.c
index 939b3efd0..57a6505e9 100644
--- a/example/ndpi_util.c
+++ b/example/ndpi_util.c
@@ -736,7 +736,7 @@ void ndpi_workflow_process_packet (struct ndpi_workflow * workflow,
goto iph_check;
}
- if((frag_off & 0x3FFF) != 0) {
+ if((frag_off & 0x1FFF) != 0) {
static u_int8_t ipv4_frags_warning_used = 0;
workflow->stats.fragmented_count++;
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 2c4b491ed..fa32146a9 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -1532,8 +1532,11 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp
ndpi_build_default_ports(ports_a, 1883, 8883, 0, 0, 0), /* TCP */
ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0)); /* UDP */
ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0);
- ports_b[0].port_low = 7000;
- ports_b[0].port_high = 7032; /* See https://www-01.ibm.com/support/docview.wss?uid=swg21044407 */
+ /* Port guess is disabled as this is UDP and we can figure our immediately looking
+ at the RX header, is this is RX or not
+
+ See https://www-01.ibm.com/support/docview.wss?uid=swg21044407
+ */
ndpi_set_proto_defaults(ndpi_mod,NDPI_PROTOCOL_ACCEPTABLE,NDPI_PROTOCOL_RX,
no_master,
no_master, "RX",
diff --git a/src/lib/protocols/rx.c b/src/lib/protocols/rx.c
index 505f0627b..9d27d5e18 100644
--- a/src/lib/protocols/rx.c
+++ b/src/lib/protocols/rx.c
@@ -109,7 +109,7 @@ void ndpi_check_rx(struct ndpi_detection_module_struct *ndpi_struct,
**/
/* TYPE field */
- if((header->type < DATA) && (header->type > VERSION)) {
+ if((header->type < DATA) || (header->type > VERSION)) {
NDPI_LOG(NDPI_PROTOCOL_RX, ndpi_struct, NDPI_LOG_DEBUG, "excluding RX\n");
NDPI_ADD_PROTOCOL_TO_BITMASK(flow->excluded_protocol_bitmask, NDPI_PROTOCOL_RX);
return;
@@ -171,8 +171,7 @@ void ndpi_check_rx(struct ndpi_detection_module_struct *ndpi_struct,
security:
/* SECURITY field */
- if(header->security != 0 && header->security != 1 &&
- header->security != 2 && header->security != 3)
+ if(header->security > 3)
{
NDPI_LOG(NDPI_PROTOCOL_RX, ndpi_struct, NDPI_LOG_DEBUG, "excluding RX\n");
NDPI_ADD_PROTOCOL_TO_BITMASK(flow->excluded_protocol_bitmask, NDPI_PROTOCOL_RX);