ctdb: add/implement CTDB_CONTROL_TCP_CLIENT_PASSED
authorStefan Metzmacher <metze@samba.org>
Fri, 17 Nov 2023 14:59:57 +0000 (15:59 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 15 Dec 2023 11:06:34 +0000 (11:06 +0000)
commit037e8e449deb136ad5ed5e4de05439411b545b6d
tree21bf7def8f585a4057f1c6b6c3025a46c04b53ab
parentc6602b686b4e50d93272667ef86d3904181fb1ab
ctdb: add/implement CTDB_CONTROL_TCP_CLIENT_PASSED

With multichannel a tcp connection is registered first with
a temporary smbd process, that calls CTDB_CONTROL_TCP_CLIENT
first and then passes the tcp connection to the longterm smbd
that already handles all connections belonging to the specific
client_guid. That smbd process calls CTDB_CONTROL_TCP_CLIENT
again, but the 'tickle' information is already there.
When the temporary smbd process exists/disconnects from ctdb
or calls CTDB_CONTROL_TCP_CLIENT_DISCONNECTED, the 'tickle'
information is removed, while the longterm smbd process
still serves the tcp connection.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15523

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/include/ctdb_private.h
ctdb/protocol/protocol.h
ctdb/protocol/protocol_control.c
ctdb/protocol/protocol_debug.c
ctdb/server/ctdb_control.c
ctdb/server/ctdb_takeover.c