From b4a160823edb600114e8902ebf9d3dea34126258 Mon Sep 17 00:00:00 2001 From: Janus Varmarken Date: Mon, 21 Jan 2019 15:51:03 -0800 Subject: [PATCH 1/1] BUGFIX: Make sure to always spawn a new sequence matcher when a sequence matcher terminates, ALSO in the case of 1-packet sequences --- .../detection/layer2/Layer2ClusterMatcher.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java index b416727..79a945f 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java @@ -79,11 +79,11 @@ public class Layer2ClusterMatcher extends AbstractClusterMatcher implements Laye newPacket.getTimestamp().isAfter(matchers[i][j+1].getLastPacket().getTimestamp())) { matchers[i][j+1] = sm; } - // We always want to have a sequence matcher in state 0, regardless of if the one that advanced - // from state zero replaced a different one in state 1 or not. - if (sm.getMatchedPacketsCount() == 1) { - matchers[i][j] = new Layer2SequenceMatcher(sm.getTargetSequence()); - } + } + // We always want to have a sequence matcher in state 0, regardless of if the one that advanced + // from state zero completed its matching or if it replaced a different one in state 1 or not. + if (sm.getMatchedPacketsCount() == 1) { + matchers[i][j] = new Layer2SequenceMatcher(sm.getTargetSequence()); } } } -- 2.34.1