From bc5be1e76cd8b3d6733f66bffe346486de89b8a0 Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Sun, 3 Oct 2021 21:38:49 +0200 Subject: Fix how some protocols handle tcp retransmissions (#1321) Most (all?) protocols don't care about (tcp) retransmissions. If a protocol registers itself with a NDPI_SELECTION_BITMASK_PROTOCOL_*_WITHOUT_RETRANSMISSION value, its callback is never triggered with a retransmitted packet. --- src/lib/protocols/steam.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'src/lib/protocols/steam.c') diff --git a/src/lib/protocols/steam.c b/src/lib/protocols/steam.c index 593438be8..5a72d9f8d 100644 --- a/src/lib/protocols/steam.c +++ b/src/lib/protocols/steam.c @@ -255,8 +255,7 @@ static void ndpi_check_steam_udp3(struct ndpi_detection_module_struct *ndpi_stru } void ndpi_search_steam(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { - struct ndpi_packet_struct *packet = &flow->packet; - + if(flow->packet.udp != NULL) { if(flow->packet_counter > 5) { NDPI_EXCLUDE_PROTO(ndpi_struct, flow); @@ -281,11 +280,7 @@ void ndpi_search_steam(struct ndpi_detection_module_struct *ndpi_struct, struct return; } - /* skip marked or retransmitted packets */ - if(packet->tcp_retransmission != 0) { - return; - } - + /* skip marked packets */ if(flow->detected_protocol_stack[0] == NDPI_PROTOCOL_STEAM) return; -- cgit v1.2.3