From 3ce16c5bd39e9c1fd2774ec3c6859ac0ae912b7c Mon Sep 17 00:00:00 2001 From: serega6531 Date: Sat, 11 May 2019 23:32:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=B0=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F,=20=D0=B8=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D1=8F=D1=89=D0=B8=D0=B9=20=D0=BB=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/serega6531/packmate/PcapWorker.java | 8 +++++--- src/main/java/ru/serega6531/packmate/model/Packet.java | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/serega6531/packmate/PcapWorker.java b/src/main/java/ru/serega6531/packmate/PcapWorker.java index be69232..f5c0a4d 100644 --- a/src/main/java/ru/serega6531/packmate/PcapWorker.java +++ b/src/main/java/ru/serega6531/packmate/PcapWorker.java @@ -149,15 +149,17 @@ public class PcapWorker { String sourceIpAndPort = sourceIpString + ":" + sourcePort; String destIpAndPort = destIpString + ":" + destPort; + boolean incoming = destIpString.equals(localIp); + UnfinishedStream stream = new UnfinishedStream(sourceIp, destIp, sourcePort, destPort, protocol); ru.serega6531.packmate.model.Packet packet = ru.serega6531.packmate.model.Packet.builder() .tempId(packetIdCounter++) .timestamp(System.currentTimeMillis()) + .incoming(incoming) .content(content) .build(); - if (unfinishedStreams.containsKey(stream)) { unfinishedStreams.get(stream).add(packet); } else { @@ -211,9 +213,9 @@ public class PcapWorker { final Map.Entry> entry = iterator.next(); final UnfinishedStream stream = entry.getKey(); - if(stream.getProtocol() == Protocol.UDP) { + if (stream.getProtocol() == Protocol.UDP) { final List packets = entry.getValue(); - if(System.currentTimeMillis() - packets.get(packets.size() - 1).getTimestamp() > TimeUnit.SECONDS.toMillis(udpStreamTimeout)) { + if (System.currentTimeMillis() - packets.get(packets.size() - 1).getTimestamp() > TimeUnit.SECONDS.toMillis(udpStreamTimeout)) { iterator.remove(); streamService.saveNewStream(stream, packets); streamsClosed++; diff --git a/src/main/java/ru/serega6531/packmate/model/Packet.java b/src/main/java/ru/serega6531/packmate/model/Packet.java index af360c2..f3f59c9 100644 --- a/src/main/java/ru/serega6531/packmate/model/Packet.java +++ b/src/main/java/ru/serega6531/packmate/model/Packet.java @@ -40,6 +40,8 @@ public class Packet { private long timestamp; + private boolean incoming; // true если от клиента к серверу, иначе false + private byte[] content; }