From 1ac9f3b0d6da3ef2504818f3c1f62dce1c0d9ae4 Mon Sep 17 00:00:00 2001 From: SpudGunMan Date: Fri, 13 Dec 2024 20:04:20 -0800 Subject: [PATCH] loop detector --- mesh_bot.py | 6 +++++- pong_bot.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/mesh_bot.py b/mesh_bot.py index 2762ccd..f51052c 100755 --- a/mesh_bot.py +++ b/mesh_bot.py @@ -985,6 +985,10 @@ def onReceive(packet, interface): elif interface2_enabled and interface2_type == 'ble': rxNode = 2 + # check if the packet is from us + if packet['from'] == myNodeNum1 or packet['from'] == myNodeNum2: + logger.warning(f"System: Packet from self {packet['from']} loop or traffic replay deteted") + # check if the packet has a channel flag use it if packet.get('channel'): channel_number = packet.get('channel', 0) @@ -1185,7 +1189,7 @@ def onReceive(packet, interface): send_message(rMsg, channel_number, 0, 1) else: # Evaluate non TEXT_MESSAGE_APP packets - consumeMetadata(packet, rxNode) + consumeMetadata(packet, rxNode) except KeyError as e: logger.critical(f"System: Error processing packet: {e} Device:{rxNode}") logger.debug(f"System: Error Packet = {packet}") diff --git a/pong_bot.py b/pong_bot.py index cb1dd8f..bf07c89 100755 --- a/pong_bot.py +++ b/pong_bot.py @@ -206,6 +206,10 @@ def onReceive(packet, interface): rxNode = 1 elif interface2_enabled and interface2_type == 'ble': rxNode = 2 + + # check if the packet is from us + if packet['from'] == myNodeNum1 or packet['from'] == myNodeNum2: + logger.warning(f"System: Packet from self {packet['from']} loop or traffic replay deteted") # check if the packet has a channel flag use it if packet.get('channel'): @@ -340,7 +344,7 @@ def onReceive(packet, interface): send_message(rMsg, channel_number, 0, 1) else: # Evaluate non TEXT_MESSAGE_APP packets - consumeMetadata(packet, rxNode) + consumeMetadata(packet, rxNode) except KeyError as e: logger.critical(f"System: Error processing packet: {e} Device:{rxNode}") logger.debug(f"System: Error Packet = {packet}")