1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

fix detection of a new TCP stream

This commit is contained in:
Martin Beran
2019-03-18 13:44:51 +01:00
parent 0573808aeb
commit 62a803c55c

View File

@@ -84,7 +84,8 @@ void StreamFollower::process_packet(PDU& packet, const timestamp_type& ts) {
if (iter == streams_.end()) { if (iter == streams_.end()) {
// Start tracking if they're either SYNs or they contain data (attach // Start tracking if they're either SYNs or they contain data (attach
// to an already running flow). // to an already running flow).
const bool is_syn = tcp->has_flags(TCP::SYN); // Start on client's SYN, not on server's SYN+ACK
const bool is_syn = tcp->has_flags(TCP::SYN) && !tcp->has_flags(TCP::ACK);
if (is_syn || (attach_to_flows_ && tcp->find_pdu<RawPDU>() != 0)) { if (is_syn || (attach_to_flows_ && tcp->find_pdu<RawPDU>() != 0)) {
iter = streams_.insert(make_pair(identifier, Stream(packet, ts))).first; iter = streams_.insert(make_pair(identifier, Stream(packet, ts))).first;
iter->second.setup_flows_callbacks(); iter->second.setup_flows_callbacks();