From 7cf7233c4b3b61f11a1fbb2d4e3663744965eb1c Mon Sep 17 00:00:00 2001 From: sshkurov Date: Sun, 5 Dec 2021 13:34:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=88=D0=BB=D0=BE=D0=BC=20=D0=B8=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B0=20=D1=84=D1=80=D0=BE=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/Dockerfile_app | 4 ++-- .../ru/serega6531/packmate/service/PatternService.java | 6 ++---- .../ru/serega6531/packmate/service/StreamService.java | 9 ++++----- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/docker/Dockerfile_app b/docker/Dockerfile_app index 36cee06..1d44a46 100644 --- a/docker/Dockerfile_app +++ b/docker/Dockerfile_app @@ -1,7 +1,7 @@ -FROM node:current-alpine +FROM node:17-alpine WORKDIR /tmp/build/ COPY ./frontend/ . -RUN npm install && npm run build +RUN export NODE_OPTIONS=--openssl-legacy-provider && npm install && npm run build FROM adoptopenjdk/openjdk15:alpine WORKDIR /tmp/compile/ diff --git a/src/main/java/ru/serega6531/packmate/service/PatternService.java b/src/main/java/ru/serega6531/packmate/service/PatternService.java index 2bf5350..6ff6ab6 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternService.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternService.java @@ -1,6 +1,5 @@ package ru.serega6531.packmate.service; -import com.google.common.collect.Iterables; import lombok.extern.slf4j.Slf4j; import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -64,9 +63,8 @@ public class PatternService { return new PatternMatcher(bytes, list).findMatches(); } - public Optional tryMatch(byte[] bytes, Pattern pattern) { - Set matches = new PatternMatcher(bytes, List.of(pattern)).findMatches(); - return Optional.ofNullable(Iterables.getOnlyElement(matches, null)); + public Set matchOne(byte[] bytes, Pattern pattern) { + return new PatternMatcher(bytes, List.of(pattern)).findMatches(); } public void enable(int id, boolean enabled) { diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java index 9851c56..2e6a48f 100644 --- a/src/main/java/ru/serega6531/packmate/service/StreamService.java +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -200,12 +200,11 @@ public class StreamService { continue; } - final Optional matchOpt = patternService.tryMatch(packet.getContent(), pattern); + final Set matches = patternService.matchOne(packet.getContent(), pattern); - if (matchOpt.isPresent()) { - FoundPattern match = matchOpt.get(); - packet.getMatches().add(match); - match.setPacket(packet); + if (!matches.isEmpty()) { + packet.getMatches().addAll(matches); + matches.forEach(m -> m.setPacket(packet)); matched = true; }