diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2025-02-18 19:59:21 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2025-02-18 13:32:52 +0100 |
commit | e56c8038fc23a349ff4a457c6b447f927ac1a56e (patch) | |
tree | ebb5fc622516d0bac671d53d105ce925a8e6cec9 | |
parent | 5a07eb3cccf1abf0a44d6ab01819f8f605c87ef4 (diff) | |
download | passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar.gz passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar.bz2 passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar.lz passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar.xz passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.tar.zst passt-e56c8038fc23a349ff4a457c6b447f927ac1a56e.zip |
tcp: More type safety for tcp_flow_migrate_target_ext()
tcp_flow_migrate_target_ext() takes a raw union flow *, although it is TCP
specific, and requires a FLOW_TYPE_TCP entry. Our usual convention is that
such functions should take a struct tcp_tap_conn * instead. Convert it to
do so.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | flow.c | 2 | ||||
-rw-r--r-- | tcp.c | 7 | ||||
-rw-r--r-- | tcp_conn.h | 2 |
3 files changed, 5 insertions, 6 deletions
@@ -1106,7 +1106,7 @@ int flow_migrate_target(struct ctx *c, const struct migrate_stage *stage, repair_flush(c); for (i = 0; i < count; i++) { - rc = tcp_flow_migrate_target_ext(c, flowtab + i, fd); + rc = tcp_flow_migrate_target_ext(c, &flowtab[i].tcp, fd); if (rc) { debug("Migration data failure at flow %u: %s, abort", i, strerror_(-rc)); @@ -3394,14 +3394,13 @@ int tcp_flow_migrate_target(struct ctx *c, int fd) /** * tcp_flow_migrate_target_ext() - Receive extended data for flow, set, connect * @c: Execution context - * @flow: Existing flow for this connection data + * @conn: Connection entry to complete with extra data * @fd: Descriptor for state migration * * Return: 0 on success, negative on fatal failure, but 0 on single flow failure */ -int tcp_flow_migrate_target_ext(struct ctx *c, union flow *flow, int fd) +int tcp_flow_migrate_target_ext(struct ctx *c, struct tcp_tap_conn *conn, int fd) { - struct tcp_tap_conn *conn = &flow->tcp; uint32_t peek_offset = conn->seq_to_tap - conn->seq_ack_from_tap; struct tcp_tap_transfer_ext t; int s = conn->sock, rc; @@ -3413,7 +3412,7 @@ int tcp_flow_migrate_target_ext(struct ctx *c, union flow *flow, int fd) } if (!t.tcpi_state) { /* Source wants us to skip this flow */ - flow_err(flow, "Dropping as requested by source"); + flow_err(conn, "Dropping as requested by source"); goto fail; } @@ -239,7 +239,7 @@ int tcp_flow_migrate_source_ext(int fd, int fidx, const struct tcp_tap_conn *conn); int tcp_flow_migrate_target(struct ctx *c, int fd); -int tcp_flow_migrate_target_ext(struct ctx *c, union flow *flow, int fd); +int tcp_flow_migrate_target_ext(struct ctx *c, struct tcp_tap_conn *conn, int fd); bool tcp_flow_is_established(const struct tcp_tap_conn *conn); |