Добавлен ttl стримов

This commit is contained in:
serega6531
2019-05-24 16:45:16 +03:00
parent 669bcaa873
commit 8699990386
4 changed files with 16 additions and 0 deletions

View File

@@ -95,6 +95,7 @@ public class PcapWorker implements PacketListener {
String destIpString = null; String destIpString = null;
int sourcePort = -1; int sourcePort = -1;
int destPort = -1; int destPort = -1;
byte ttl = 0;
byte[] content = null; byte[] content = null;
Protocol protocol = null; Protocol protocol = null;
boolean ack = false; boolean ack = false;
@@ -107,6 +108,7 @@ public class PcapWorker implements PacketListener {
destIp = header.getDstAddr(); destIp = header.getDstAddr();
sourceIpString = header.getSrcAddr().getHostAddress(); sourceIpString = header.getSrcAddr().getHostAddress();
destIpString = header.getDstAddr().getHostAddress(); destIpString = header.getDstAddr().getHostAddress();
ttl = header.getTtl();
} }
if (rawPacket.contains(TcpPacket.class)) { if (rawPacket.contains(TcpPacket.class)) {
@@ -142,6 +144,7 @@ public class PcapWorker implements PacketListener {
ru.serega6531.packmate.model.Packet packet = ru.serega6531.packmate.model.Packet.builder() ru.serega6531.packmate.model.Packet packet = ru.serega6531.packmate.model.Packet.builder()
.tempId(packetIdCounter++) .tempId(packetIdCounter++)
.ttl(ttl)
.timestamp(System.currentTimeMillis()) .timestamp(System.currentTimeMillis())
.incoming(incoming) .incoming(incoming)
.content(content) .content(content)

View File

@@ -33,6 +33,10 @@ public class Packet {
@JsonIgnore @JsonIgnore
private Long tempId; private Long tempId;
@Transient
@JsonIgnore
private byte ttl;
@ManyToOne @ManyToOne
@JoinColumn(name = "stream_id", nullable = false) @JoinColumn(name = "stream_id", nullable = false)
@JsonIgnore @JsonIgnore

View File

@@ -45,4 +45,6 @@ public class Stream {
private boolean favorite; private boolean favorite;
private byte ttl;
} }

View File

@@ -76,8 +76,13 @@ public class StreamService {
return false; return false;
} }
Optional<Packet> firstIncoming = packets.stream()
.filter(Packet::isIncoming)
.findFirst();
Stream stream = new Stream(); Stream stream = new Stream();
stream.setProtocol(unfinishedStream.getProtocol()); stream.setProtocol(unfinishedStream.getProtocol());
stream.setTtl(firstIncoming.isPresent() ? firstIncoming.get().getTtl() : 0);
stream.setStartTimestamp(packets.get(0).getTimestamp()); stream.setStartTimestamp(packets.get(0).getTimestamp());
stream.setEndTimestamp(packets.get(packets.size() - 1).getTimestamp()); stream.setEndTimestamp(packets.get(packets.size() - 1).getTimestamp());
stream.setService(serviceOptional.get()); stream.setService(serviceOptional.get());
@@ -183,6 +188,8 @@ public class StreamService {
IOUtils.copy(gzipStream, out); IOUtils.copy(gzipStream, out);
byte[] newContent = ArrayUtils.addAll(httpHeader, out.toByteArray()); byte[] newContent = ArrayUtils.addAll(httpHeader, out.toByteArray());
log.debug("Разархивирован gzip: {} -> {} байт", gzipBytes.length, out.size());
return Packet.builder() return Packet.builder()
.incoming(false) .incoming(false)
.timestamp(packets.get(0).getTimestamp()) .timestamp(packets.get(0).getTimestamp())