bugfix(fake_tcp) do not RST packets that already have RST on them

This commit is contained in:
Datong Sun 2021-09-16 21:35:34 -07:00 committed by Datong Sun
parent e869255785
commit ef9a2962df

View File

@ -394,6 +394,7 @@ impl Stack {
assert!(shared.tuples.lock().unwrap().insert(tuple, Arc::new(incoming)).is_none());
tokio::spawn(sock.accept());
} else {
info!("Bad TCP SYN packet from {}, sending RST", remote_addr);
let buf = build_tcp_packet(
local_addr,
remote_addr,
@ -404,7 +405,8 @@ impl Stack {
);
shared.outgoing.try_send(buf).unwrap();
}
} else {
} else if (tcp_packet.get_flags() & tcp::TcpFlags::RST) == 0 {
info!("Bad TCP packet from {}, sending RST", remote_addr);
let buf = build_tcp_packet(
local_addr,
remote_addr,