mirror of
https://github.com/mfontanini/libtins
synced 2026-01-27 12:14:26 +01:00
simplify tcp flag checks, fix stream_follower (#334)
* simplify tcp flag checks, fix stream_follower On various places was used simple comparison for checking state of flags. tcp.flags() == (TCP::SYN | TCP::ACK) This is not what you want usually, because this check is false in case that another flag is set also. Correct check for syn-ack packet should be: (tcp.flags() & (TCP::SYN | TCP::ACK)) == (TCP::SYN | TCP::ACK) To simplify this kind of check, add new has_flags method: bool TCP::has_flags(small_uint<12> check_flags) const * remove duplicate TCP::SYN flag check
This commit is contained in:
committed by
Matias Fontanini
parent
74e3d909e6
commit
22b4435c81
@@ -257,6 +257,10 @@ small_uint<12> TCP::flags() const {
|
||||
return (header_.res1 << 8) | header_.flags_8;
|
||||
}
|
||||
|
||||
bool TCP::has_flags(small_uint<12> check_flags) const {
|
||||
return (flags() & check_flags) == check_flags;
|
||||
}
|
||||
|
||||
void TCP::set_flag(Flags tcp_flag, small_uint<1> value) {
|
||||
switch (tcp_flag) {
|
||||
case FIN:
|
||||
|
||||
Reference in New Issue
Block a user