aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorLuca Deri <deri@ntop.org>2018-08-16 15:23:30 +0200
committerLuca Deri <deri@ntop.org>2018-08-16 15:23:30 +0200
commit3091dc3c4880d3d51cc5a0df6004e941c24f9e28 (patch)
treec13122dd112c4fd284c57cfc0e282fa360364585 /src/lib
parent01bf295a19c19dc4f521ee40f0c478c794e1b5e4 (diff)
Fix for #400
Diffstat (limited to 'src/lib')
2 files changed, 21 insertions, 5 deletions
diff --git a/src/lib/protocols/directconnect.c b/src/lib/protocols/directconnect.c
index 6072c3697..5088685e4 100644
--- a/src/lib/protocols/directconnect.c
+++ b/src/lib/protocols/directconnect.c
@@ -78,8 +78,7 @@ static void ndpi_int_directconnect_add_connection(struct ndpi_detection_module_s
const u_int8_t connection_type)
{
- struct ndpi_packet_struct *packet = &flow->packet;
-
+ struct ndpi_packet_struct *packet = &flow->packet;
struct ndpi_id_struct *src = flow->src;
struct ndpi_id_struct *dst = flow->dst;
diff --git a/src/lib/protocols/whatsapp.c b/src/lib/protocols/whatsapp.c
index 6a98eac6b..6964a8e0e 100644
--- a/src/lib/protocols/whatsapp.c
+++ b/src/lib/protocols/whatsapp.c
@@ -33,12 +33,30 @@ void ndpi_search_whatsapp(struct ndpi_detection_module_struct *ndpi_struct,
NDPI_LOG_DBG(ndpi_struct, "search WhatsApp\n");
+ if(flow->l4.tcp.wa_matched_so_far == 0) {
+ if(memcmp(packet->payload, whatsapp_sequence, packet->payload_packet_len)) {
+ NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
+ } else
+ flow->l4.tcp.wa_matched_so_far = packet->payload_packet_len;
+
+ return;
+ } else {
+ if(memcmp(packet->payload, &whatsapp_sequence[flow->l4.tcp.wa_matched_so_far],
+ sizeof(whatsapp_sequence)-flow->l4.tcp.wa_matched_so_far))
+ NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
+ else
+ ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_WHATSAPP, NDPI_PROTOCOL_UNKNOWN);
+
+ return;
+ }
+
if((packet->payload_packet_len > 240)
&& (memcmp(packet->payload, whatsapp_sequence, sizeof(whatsapp_sequence)) == 0)) {
NDPI_LOG_INFO(ndpi_struct, "found WhatsApp\n");
ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_WHATSAPP, NDPI_PROTOCOL_UNKNOWN);
- } else
- NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
+ }
+
+ NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
}
@@ -53,4 +71,3 @@ void init_whatsapp_dissector(struct ndpi_detection_module_struct *ndpi_struct,
ADD_TO_DETECTION_BITMASK);
*id += 1;
}
-