diff --git a/src/main/java/ru/serega6531/packmate/model/Packet.java b/src/main/java/ru/serega6531/packmate/model/Packet.java index 54a52b8..8d3c7ee 100644 --- a/src/main/java/ru/serega6531/packmate/model/Packet.java +++ b/src/main/java/ru/serega6531/packmate/model/Packet.java @@ -32,7 +32,7 @@ public class Packet { private Long tempId; @Transient - private byte ttl; + private int ttl; @ManyToOne @JoinColumn(name = "stream_id", nullable = false) diff --git a/src/main/java/ru/serega6531/packmate/model/Stream.java b/src/main/java/ru/serega6531/packmate/model/Stream.java index ef83b14..ad48d1b 100644 --- a/src/main/java/ru/serega6531/packmate/model/Stream.java +++ b/src/main/java/ru/serega6531/packmate/model/Stream.java @@ -46,7 +46,8 @@ public class Stream { private boolean favorite; - private byte ttl; + @Column(columnDefinition = "smallint") + private int ttl; @Column(columnDefinition = "char(3)") private String userAgentHash; diff --git a/src/main/java/ru/serega6531/packmate/model/pojo/StreamDto.java b/src/main/java/ru/serega6531/packmate/model/pojo/StreamDto.java index 74e4a52..692d8d8 100644 --- a/src/main/java/ru/serega6531/packmate/model/pojo/StreamDto.java +++ b/src/main/java/ru/serega6531/packmate/model/pojo/StreamDto.java @@ -15,7 +15,7 @@ public class StreamDto { private long endTimestamp; private Set foundPatterns; private boolean favorite; - private byte ttl; + private int ttl; private String userAgentHash; } diff --git a/src/main/java/ru/serega6531/packmate/pcap/AbstractPcapWorker.java b/src/main/java/ru/serega6531/packmate/pcap/AbstractPcapWorker.java index d6a6536..8c1362a 100644 --- a/src/main/java/ru/serega6531/packmate/pcap/AbstractPcapWorker.java +++ b/src/main/java/ru/serega6531/packmate/pcap/AbstractPcapWorker.java @@ -53,7 +53,7 @@ public abstract class AbstractPcapWorker implements PcapWorker, PacketListener { private final SetMultimap> fins = HashMultimap.create(); private final SetMultimap> acks = HashMultimap.create(); - public AbstractPcapWorker(ServicesService servicesService, + protected AbstractPcapWorker(ServicesService servicesService, StreamService streamService, String localIpString) throws UnknownHostException { this.servicesService = servicesService; @@ -87,7 +87,7 @@ public abstract class AbstractPcapWorker implements PcapWorker, PacketListener { final IpV4Packet.IpV4Header ipHeader = rawPacket.get(IpV4Packet.class).getHeader(); Inet4Address sourceIp = ipHeader.getSrcAddr(); Inet4Address destIp = ipHeader.getDstAddr(); - byte ttl = ipHeader.getTtl(); + int ttl = Byte.toUnsignedInt(ipHeader.getTtl()); final TcpPacket packet = rawPacket.get(TcpPacket.class); final TcpPacket.TcpHeader tcpHeader = packet.getHeader(); @@ -127,7 +127,7 @@ public abstract class AbstractPcapWorker implements PcapWorker, PacketListener { final IpV4Packet.IpV4Header ipHeader = rawPacket.get(IpV4Packet.class).getHeader(); Inet4Address sourceIp = ipHeader.getSrcAddr(); Inet4Address destIp = ipHeader.getDstAddr(); - byte ttl = ipHeader.getTtl(); + int ttl = Byte.toUnsignedInt(ipHeader.getTtl()); final UdpPacket packet = rawPacket.get(UdpPacket.class); final UdpPacket.UdpHeader udpHeader = packet.getHeader(); @@ -159,7 +159,7 @@ public abstract class AbstractPcapWorker implements PcapWorker, PacketListener { } private UnfinishedStream addNewPacket(Inet4Address sourceIp, Inet4Address destIp, long time, - int sourcePort, int destPort, byte ttl, byte[] content, Protocol protocol) { + int sourcePort, int destPort, int ttl, byte[] content, Protocol protocol) { var incoming = destIp.equals(localIp); var stream = new UnfinishedStream(sourceIp, destIp, sourcePort, destPort, protocol); diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java index d332a5f..1e8c67c 100644 --- a/src/main/java/ru/serega6531/packmate/service/StreamService.java +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -94,7 +94,7 @@ public class StreamService { final Stream stream = new Stream(); stream.setProtocol(unfinishedStream.getProtocol()); - stream.setTtl(firstIncoming.isPresent() ? firstIncoming.get().getTtl() : 0); + stream.setTtl(firstIncoming.map(Packet::getTtl).orElse(0)); stream.setStartTimestamp(packets.get(0).getTimestamp()); stream.setEndTimestamp(packets.get(packets.size() - 1).getTimestamp()); stream.setService(service.getPort());