diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2022-11-17 16:58:51 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2022-11-25 01:35:19 +0100 |
commit | 356c6e0677072f1a6cfe9b5d0648d89ab6fd5523 (patch) | |
tree | a601be5d18ee5f55c8f33298066b2e1e395b66c9 /tcp_splice.h | |
parent | 73d3a3e84eeea5566a3a65b033cf1d933b07c2ee (diff) | |
download | passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.gz passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.bz2 passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.lz passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.xz passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.tar.zst passt-356c6e0677072f1a6cfe9b5d0648d89ab6fd5523.zip |
tcp: Unify part of spliced and non-spliced conn_from_sock path
In tcp_sock_handler() we split off to handle spliced sockets before
checking anything else. However the first steps of the "new connection"
path for each case are the same: allocate a connection entry and accept()
the connection.
Remove this duplication by making tcp_conn_from_sock() handle both spliced
and non-spliced cases, with help from more specific tcp_tap_conn_from_sock
and tcp_splice_conn_from_sock functions for the later stages which differ.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'tcp_splice.h')
-rw-r--r-- | tcp_splice.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tcp_splice.h b/tcp_splice.h index 22024d6..f9462ae 100644 --- a/tcp_splice.h +++ b/tcp_splice.h @@ -6,8 +6,12 @@ #ifndef TCP_SPLICE_H #define TCP_SPLICE_H +struct tcp_splice_conn; + void tcp_sock_handler_splice(struct ctx *c, union epoll_ref ref, uint32_t events); +void tcp_splice_conn_from_sock(struct ctx *c, union epoll_ref ref, + struct tcp_splice_conn *conn, int s); void tcp_splice_init(struct ctx *c); #endif /* TCP_SPLICE_H */ |