From 4781deff635a0612c501b18bc587b9fc785fa796 Mon Sep 17 00:00:00 2001 From: jkerdreu <jkerdreu@b32b6428-25c9-4566-ad07-03861ab6144f> Date: Tue, 29 Oct 2019 23:50:53 +0000 Subject: [PATCH] added a loop detection queue git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2334 b32b6428-25c9-4566-ad07-03861ab6144f --- scripts/unreflector.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/unreflector.py b/scripts/unreflector.py index 4a3e8caa..e1cfe738 100644 --- a/scripts/unreflector.py +++ b/scripts/unreflector.py @@ -2,6 +2,8 @@ from xaal.lib import NetworkConnector import socket import select import argparse +import hashlib +import collections class UDPConnector(object): UDP_MAX_SIZE = 65507 @@ -34,10 +36,20 @@ def run(u_addr,u_port,m_addr,m_port): mc = NetworkConnector(m_addr,m_port,10) mc.connect() + queue = collections.deque(maxlen=50) + while 1: data = udp.get_data() if data: + h = hashlib.blake2b(data).hexdigest() + queue.append(h) mc.send(data) + + data = mc.get_data() + if data: + h=hashlib.blake2b(data).hexdigest() + if h not in queue: + udp.send(data) def main(): ap = argparse.ArgumentParser(description="Simple un-reflector") -- GitLab