/**
* Reassembles TCP conversations (streams).
+ * <b>Note: current version only supports TCP over IPv4.</b>
*
* @author Janus Varmarken {@literal <jvarmark@uci.edu>}
* @author Rahmadi Trimananda {@literal <rtrimana@uci.edu>}
@Override
public void gotPacket(PcapPacket pcapPacket) {
+ IpV4Packet ipPacket = pcapPacket.get(IpV4Packet.class);
TcpPacket tcpPacket = pcapPacket.get(TcpPacket.class);
- if (tcpPacket == null) {
+ if (ipPacket == null || tcpPacket == null) {
return;
}
// ... TODO?
// We can check if the IP prefix matches a local IP when handling traffic observed inside the local
// network, but that obviously won't be a useful strategy for an observer at the WAN port.
String srcIp = pcapPacket.get(IpV4Packet.class).getHeader().getSrcAddr().getHostAddress();
- boolean clientIsSrc = srcIp.startsWith("10.0.1.") || srcIp.startsWith("192.168.1.");
+ // TODO: REPLACE THE ROUTER'S IP WITH A PARAMETER!!!
+ boolean clientIsSrc = srcIp.startsWith("10.0.1.") || srcIp.startsWith("192.168.1.") || srcIp.equals("128.195.205.105");
conv = Conversation.fromPcapPacket(pcapPacket, clientIsSrc);
}
mOpenConversations.put(conv, conv);