diff --git a/module/filter/doubleFilter.py b/module/filter/doubleFilter.py index 010af85..a6af421 100644 --- a/module/filter/doubleFilter.py +++ b/module/filter/doubleFilter.py @@ -69,6 +69,11 @@ def onUnload(self): def _check(self, bwPacket, filterFields): self._filterLists[bwPacket.get("mode")].insert(0, bwPacket) + for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one + if all(listPacket.get(x) == bwPacket.get(x) for x in filterFields): + logging.debug("found duplicate: %s", bwPacket.get("mode")) + return False + # delete entries that are to old counter = 0 for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one @@ -83,10 +88,5 @@ def _check(self, bwPacket, filterFields): logging.debug("MaxEntry reached - delete oldest") self._filterLists[bwPacket.get("mode")].pop() - for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one - if all(listPacket.get(x) == bwPacket.get(x) for x in filterFields): - logging.debug("found duplicate: %s", bwPacket.get("mode")) - return False - logging.debug("doubleFilter ok") return None