ctdb-protocol: Add missing push support for new controls v4-18-test
authorMartin Schwenke <mschwenke@ddn.com>
Fri, 9 Feb 2024 06:29:46 +0000 (17:29 +1100)
committerJule Anger <janger@samba.org>
Tue, 20 Feb 2024 11:43:27 +0000 (12:43 +0100)
CTDB_CONTROL_TCP_CLIENT_DISCONNECTED and
CTDB_CONTROL_TCP_CLIENT_PASSED were added in commits
c6602b686b4e50d93272667ef86d3904181fb1ab and
037e8e449deb136ad5ed5e4de05439411b545b6d.  They were missing test
support for the packet push/pull.  While adding the testing (for
completeness, before adding another new control) I noticed that the
push functionality was absent.  This adds that, along with the test
support.

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

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Feb 19 10:21:48 UTC 2024 on atb-devel-224

(cherry picked from commit dd9b11acbc4fbde1941719968aeb463b853b0ffb)

ctdb/protocol/protocol_control.c
ctdb/tests/src/protocol_common_ctdb.c
ctdb/tests/src/protocol_ctdb_test.c

index 83ed6cb4ee189c6e021f1d1b694fe82f02c446fd..e4491159937ed1b9c27f1d18691030ad85655564 100644 (file)
@@ -693,6 +693,14 @@ static void ctdb_req_control_data_push(struct ctdb_req_control_data *cd,
        case CTDB_CONTROL_ECHO_DATA:
                ctdb_echo_data_push(cd->data.echo_data, buf, &np);
                break;
+
+       case CTDB_CONTROL_TCP_CLIENT_DISCONNECTED:
+               ctdb_connection_push(cd->data.conn, buf, &np);
+               break;
+
+       case CTDB_CONTROL_TCP_CLIENT_PASSED:
+               ctdb_connection_push(cd->data.conn, buf, &np);
+               break;
        }
 
        *npush = np;
index 384076824a47a8597e282f8000c7dd23ce1b385b..8a8e114f67a96d63da69bc1440fdd64687b927f4 100644 (file)
@@ -593,6 +593,19 @@ void fill_ctdb_req_control_data(TALLOC_CTX *mem_ctx,
 
        case CTDB_CONTROL_ENABLE_NODE:
                break;
+
+       case CTDB_CONTROL_TCP_CLIENT_DISCONNECTED:
+               cd->data.conn = talloc(mem_ctx, struct ctdb_connection);
+               assert(cd->data.conn != NULL);
+               fill_ctdb_connection(mem_ctx, cd->data.conn);
+               break;
+
+       case CTDB_CONTROL_TCP_CLIENT_PASSED:
+               cd->data.conn = talloc(mem_ctx, struct ctdb_connection);
+               assert(cd->data.conn != NULL);
+               fill_ctdb_connection(mem_ctx, cd->data.conn);
+               break;
+
        }
 }
 
@@ -982,6 +995,14 @@ void verify_ctdb_req_control_data(struct ctdb_req_control_data *cd,
 
        case CTDB_CONTROL_ENABLE_NODE:
                break;
+
+       case CTDB_CONTROL_TCP_CLIENT_DISCONNECTED:
+               verify_ctdb_connection(cd->data.conn, cd2->data.conn);
+               break;
+
+       case CTDB_CONTROL_TCP_CLIENT_PASSED:
+               verify_ctdb_connection(cd->data.conn, cd2->data.conn);
+               break;
        }
 }
 
@@ -1378,6 +1399,12 @@ void fill_ctdb_reply_control_data(TALLOC_CTX *mem_ctx,
 
        case CTDB_CONTROL_ENABLE_NODE:
                break;
+
+       case CTDB_CONTROL_TCP_CLIENT_DISCONNECTED:
+               break;
+
+       case CTDB_CONTROL_TCP_CLIENT_PASSED:
+               break;
        }
 }
 
@@ -1715,6 +1742,12 @@ void verify_ctdb_reply_control_data(struct ctdb_reply_control_data *cd,
 
        case CTDB_CONTROL_ENABLE_NODE:
                break;
+
+       case CTDB_CONTROL_TCP_CLIENT_DISCONNECTED:
+               break;
+
+       case CTDB_CONTROL_TCP_CLIENT_PASSED:
+               break;
        }
 }
 
index f6fb5134a00865d4984ae37833c492d5c6d5d3d2..840d465ae30d22a69d4422e818f2027ac098596b 100644 (file)
@@ -277,7 +277,7 @@ PROTOCOL_CTDB4_TEST(struct ctdb_req_dmaster, ctdb_req_dmaster,
 PROTOCOL_CTDB4_TEST(struct ctdb_reply_dmaster, ctdb_reply_dmaster,
                        CTDB_REPLY_DMASTER);
 
-#define NUM_CONTROLS   159
+#define NUM_CONTROLS   161
 
 PROTOCOL_CTDB2_TEST(struct ctdb_req_control_data, ctdb_req_control_data);
 PROTOCOL_CTDB2_TEST(struct ctdb_reply_control_data, ctdb_reply_control_data);