ctdb-protocol: Add protocol marshalling for tunnel controls
authorAmitay Isaacs <amitay@gmail.com>
Thu, 6 Apr 2017 08:58:01 +0000 (18:58 +1000)
committerMartin Schwenke <martins@samba.org>
Tue, 10 Oct 2017 09:45:19 +0000 (11:45 +0200)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/protocol/protocol_api.h
ctdb/protocol/protocol_client.c
ctdb/protocol/protocol_control.c
ctdb/protocol/protocol_debug.c
ctdb/tests/cunit/protocol_test_101.sh
ctdb/tests/src/protocol_common_ctdb.c
ctdb/tests/src/protocol_ctdb_test.c

index e15bb972e22258c0211364d43ffc977eb63369fc..0e5d57fdece977d9c2e893f53053e8281c5c44d8 100644 (file)
@@ -601,6 +601,14 @@ void ctdb_req_control_check_pid_srvid(struct ctdb_req_control *request,
 int ctdb_reply_control_check_pid_srvid(struct ctdb_reply_control *reply,
                                       int *status);
 
+void ctdb_req_control_tunnel_register(struct ctdb_req_control *request,
+                                     uint64_t tunnel_id);
+int ctdb_reply_control_tunnel_register(struct ctdb_reply_control *reply);
+
+void ctdb_req_control_tunnel_deregister(struct ctdb_req_control *request,
+                                       uint64_t tunnel_id);
+int ctdb_reply_control_tunnel_deregister(struct ctdb_reply_control *reply);
+
 /* From protocol/protocol_debug.c */
 
 void ctdb_packet_print(uint8_t *buf, size_t buflen, FILE *fp);
index a741b114dbd6273ce5fafa79378b305b58081eb0..a18af08e21a5bf74c8fe42066e051ebf980f2541 100644 (file)
@@ -2329,3 +2329,45 @@ int ctdb_reply_control_check_pid_srvid(struct ctdb_reply_control *reply,
 
        return reply->status;
 }
+
+/* CTDB_CONTROL_TUNNEL_REGISTER */
+
+void ctdb_req_control_tunnel_register(struct ctdb_req_control *request,
+                                     uint64_t tunnel_id)
+{
+       request->opcode = CTDB_CONTROL_TUNNEL_REGISTER;
+       request->pad = 0;
+       request->srvid = tunnel_id;
+       request->client_id = 0;
+       request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_register(struct ctdb_reply_control *reply)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_REGISTER) {
+               return EPROTO;
+       }
+
+       return reply->status;
+}
+
+/* CTDB_CONTROL_TUNNEL_DEREGISTER */
+
+void ctdb_req_control_tunnel_deregister(struct ctdb_req_control *request,
+                                       uint64_t tunnel_id)
+{
+       request->opcode = CTDB_CONTROL_TUNNEL_DEREGISTER;
+       request->pad = 0;
+       request->srvid = tunnel_id;
+       request->client_id = 0;
+       request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_deregister(struct ctdb_reply_control *reply)
+{
+       if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_DEREGISTER) {
+               return EPROTO;
+       }
+
+       return reply->status;
+}
index 5abe0379fe0794ebd2a6778cd0eb634551de2482..12a78e1792d10dcf01f460c21b9ba52c1c429c23 100644 (file)
@@ -420,6 +420,12 @@ static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
        case CTDB_CONTROL_CHECK_PID_SRVID:
                len = ctdb_pid_srvid_len(cd->data.pid_srvid);
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
        }
 
        return len;
@@ -1416,6 +1422,12 @@ static size_t ctdb_reply_control_data_len(struct ctdb_reply_control_data *cd)
 
        case CTDB_CONTROL_CHECK_PID_SRVID:
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
        }
 
        return len;
index 5a24d39cfba70c26d21ebe7050519b3600272d27..1a87ade3419f5b403f5b60bf537ae76172e5c942 100644 (file)
@@ -240,6 +240,8 @@ static void ctdb_opcode_print(uint32_t opcode, FILE *fp)
                { CTDB_CONTROL_DB_OPEN_FLAGS, "DB_OPEN_FLAGS" },
                { CTDB_CONTROL_DB_ATTACH_REPLICATED, "DB_ATTACH_REPLICATED" },
                { CTDB_CONTROL_CHECK_PID_SRVID, "CHECK_PID_SRVID" },
+               { CTDB_CONTROL_TUNNEL_REGISTER, "TUNNEL_REGISTER" },
+               { CTDB_CONTROL_TUNNEL_DEREGISTER, "TUNNEL_DEREGISTER" },
                { MAP_END, "" },
        };
 
index 8813e188d06e2b89d93b07b8a68b74dc217d64a2..8b3645a8b6787f95b27e57c57f5fb3a40ea9d97b 100755 (executable)
@@ -2,7 +2,7 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-last_control=151
+last_control=153
 
 generate_control_output ()
 {
index 0c3a9a89f2f0f611e9f47a50be5c8426f6dfa657..928b7d127cdc6b887bac5e6a6ece1954c564e8ff 100644 (file)
@@ -609,6 +609,12 @@ void fill_ctdb_req_control_data(TALLOC_CTX *mem_ctx,
                assert(cd->data.pid_srvid != NULL);
                fill_ctdb_pid_srvid(mem_ctx, cd->data.pid_srvid);
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
        }
 }
 
@@ -1014,6 +1020,12 @@ void verify_ctdb_req_control_data(struct ctdb_req_control_data *cd,
        case CTDB_CONTROL_CHECK_PID_SRVID:
                verify_ctdb_pid_srvid(cd->data.pid_srvid, cd2->data.pid_srvid);
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
        }
 }
 
@@ -1428,6 +1440,13 @@ void fill_ctdb_reply_control_data(TALLOC_CTX *mem_ctx,
 
        case CTDB_CONTROL_CHECK_PID_SRVID:
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
+
        }
 }
 
@@ -1775,6 +1794,13 @@ void verify_ctdb_reply_control_data(struct ctdb_reply_control_data *cd,
 
        case CTDB_CONTROL_CHECK_PID_SRVID:
                break;
+
+       case CTDB_CONTROL_TUNNEL_REGISTER:
+               break;
+
+       case CTDB_CONTROL_TUNNEL_DEREGISTER:
+               break;
+
        }
 }
 
index a13901f83634edb425ed5e00809d7a27c41de97a..64f67f1e5da3a5d2166ea2c068ecc6c616018ee9 100644 (file)
@@ -283,7 +283,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   152
+#define NUM_CONTROLS   154
 
 PROTOCOL_CTDB2_TEST(struct ctdb_req_control_data, ctdb_req_control_data);
 PROTOCOL_CTDB2_TEST(struct ctdb_reply_control_data, ctdb_reply_control_data);