From: Amitay Isaacs Date: Thu, 6 Apr 2017 08:58:01 +0000 (+1000) Subject: ctdb-protocol: Add protocol marshalling for tunnel controls X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=4467c6112a6954908b97dce994852f882c38ce56;p=metze%2Fsamba%2Fwip.git ctdb-protocol: Add protocol marshalling for tunnel controls Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/protocol/protocol_api.h b/ctdb/protocol/protocol_api.h index e15bb972e222..0e5d57fdece9 100644 --- a/ctdb/protocol/protocol_api.h +++ b/ctdb/protocol/protocol_api.h @@ -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); diff --git a/ctdb/protocol/protocol_client.c b/ctdb/protocol/protocol_client.c index a741b114dbd6..a18af08e21a5 100644 --- a/ctdb/protocol/protocol_client.c +++ b/ctdb/protocol/protocol_client.c @@ -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; +} diff --git a/ctdb/protocol/protocol_control.c b/ctdb/protocol/protocol_control.c index 5abe0379fe07..12a78e1792d1 100644 --- a/ctdb/protocol/protocol_control.c +++ b/ctdb/protocol/protocol_control.c @@ -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; diff --git a/ctdb/protocol/protocol_debug.c b/ctdb/protocol/protocol_debug.c index 5a24d39cfba7..1a87ade3419f 100644 --- a/ctdb/protocol/protocol_debug.c +++ b/ctdb/protocol/protocol_debug.c @@ -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, "" }, }; diff --git a/ctdb/tests/cunit/protocol_test_101.sh b/ctdb/tests/cunit/protocol_test_101.sh index 8813e188d06e..8b3645a8b678 100755 --- a/ctdb/tests/cunit/protocol_test_101.sh +++ b/ctdb/tests/cunit/protocol_test_101.sh @@ -2,7 +2,7 @@ . "${TEST_SCRIPTS_DIR}/unit.sh" -last_control=151 +last_control=153 generate_control_output () { diff --git a/ctdb/tests/src/protocol_common_ctdb.c b/ctdb/tests/src/protocol_common_ctdb.c index 0c3a9a89f2f0..928b7d127cdc 100644 --- a/ctdb/tests/src/protocol_common_ctdb.c +++ b/ctdb/tests/src/protocol_common_ctdb.c @@ -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; + } } diff --git a/ctdb/tests/src/protocol_ctdb_test.c b/ctdb/tests/src/protocol_ctdb_test.c index a13901f83634..64f67f1e5da3 100644 --- a/ctdb/tests/src/protocol_ctdb_test.c +++ b/ctdb/tests/src/protocol_ctdb_test.c @@ -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);