Pull request #3257: stream_tcp: call flush_queued_segments() from flush_on_ack_policy()
Merge in SNORT/snort3 from ~SMINUT/snort3:flush_queued_segments to master
Squashed commit of the following:
commit
77304a6d8f435d8491fa6113108dfb331651f386
Author: Silviu Minut <sminut@cisco.com>
Date: Mon Feb 28 21:15:18 2022 -0500
stream_tcp: add fin_i_seq and fin_no_gap() and try to use those together with the existing next_no_gap() to determine whether we are on a gap in the seglist or not, when scanning
commit
15eb71a6197aef4e190cd59083bc6cd4012403b3
Author: Silviu Minut <sminut@cisco.com>
Date: Fri Feb 25 16:27:26 2022 -0500
stream_tcp: distinguish between the various non-flush cases when returning from scan_on_data_policy(), so we can call final flush only when the seglist has no gaps; if the seglist has gaps, call final_flush only when the gaps have filled or on session teardown
commit
e753368af6f64c501dd67f426c4dd40c005fce46
Author: Silviu Minut <sminut@cisco.com>
Date: Thu Feb 24 19:26:29 2022 -0500
stream_tcp: introduce TcpStreamTracker::set_fin_seq_status_seen() and call it before using the fin_seq_status flag in perform_fin_recv_flush()
commit
840f71182a9125660b1742fe190abc2d32303873
Author: Silviu Minut <sminut@cisco.com>
Date: Wed Feb 2 22:00:39 2022 -0500
stream_tcp: * call flush_queued_segments() from flush_on_ack_policy() when the splitter did not flush but we are on a FIN
* fix how fin_seq_status is being set in update_tracker_ack_sent()
* make the pre-ack mode work the same way as post-ack by modifying flush_on_data_policy() accordingly