diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2023-11-30 13:02:22 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-12-04 09:51:33 +0100 |
commit | b86afe3559c0bd3d24bc6fed7c60466cf141224c (patch) | |
tree | a274602203c86b81459385245528283cf64f798f /util.h | |
parent | e21b6d69b1e65b341d6c2177258ee2b38c5f6374 (diff) | |
download | passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar.gz passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar.bz2 passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar.lz passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar.xz passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.tar.zst passt-b86afe3559c0bd3d24bc6fed7c60466cf141224c.zip |
tcp: Don't defer hash table removal2023_12_04.b86afe3
When a TCP connection is closed, we mark it by setting events to CLOSED,
then some time later we do final cleanups: closing sockets, removing from
the hash table and so forth.
This does mean that when making a hash lookup we need to exclude any
apparent matches that are CLOSED, since they represent a stale connection.
This can happen in practice if one connection closes and a new one with the
same endpoints is started shortly afterward.
Checking for CLOSED is quite specific to TCP however, and won't work when
we extend the hash table to more general flows. So, alter the code to
immediately remove the connection from the hash table when CLOSED, although
we still defer closing sockets and other cleanup.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'util.h')
0 files changed, 0 insertions, 0 deletions