From: Janus Varmarken Date: Wed, 18 Jul 2018 01:56:07 +0000 (-0700) Subject: TcpReassembler: Provide method for retreiving reassembled conversations X-Git-Url: http://plrg.eecs.uci.edu/git/?p=pingpong.git;a=commitdiff_plain;h=e3ee3861bca5f9336b025310b5501063066ea4b1 TcpReassembler: Provide method for retreiving reassembled conversations --- diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java index 0a66934..cffe9ec 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java @@ -4,12 +4,10 @@ import org.pcap4j.core.PcapPacket; import org.pcap4j.packet.IpV4Packet; import org.pcap4j.packet.TcpPacket; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; +import java.util.*; /** - * TODO add class documentation. + * Reassembles TCP conversations (streams). * * @author Janus Varmarken {@literal } * @author Rahmadi Trimananda {@literal } @@ -48,6 +46,18 @@ public class TcpReassembler implements PcapPacketConsumer { processPacket(pcapPacket); } + /** + * Get the reassembled TCP connections. Note that if this is called while packets are still being processed (by + * calls to {@link #consumePacket(PcapPacket)}), the behavior is undefined and the returned list may be inconsistent. + * @return The reassembled TCP connections. + */ + public List getTcpConversations() { + ArrayList combined = new ArrayList<>(); + combined.addAll(mTerminatedConversations.values()); + combined.addAll(mOpenConversations.values()); + return combined; + } + private void processPacket(PcapPacket pcapPacket) { TcpPacket tcpPacket = pcapPacket.get(TcpPacket.class); // Handle client connection initiation attempts.