ctdb-client: Add client code for tunnel controls
authorAmitay Isaacs <amitay@gmail.com>
Thu, 6 Apr 2017 08:58:18 +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/client/client_control_sync.c
ctdb/client/client_sync.h

index 7ee9f1da4a01cbdd06ee6d73f01df66fa74e5a92..e4e14b703e86d3cfa0ef784694ef7e08038d9d83 100644 (file)
@@ -2660,3 +2660,61 @@ int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
 
        return 0;
 }
+
+int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+                             struct ctdb_client_context *client,
+                             int destnode, struct timeval timeout,
+                             uint64_t tunnel_id)
+{
+       struct ctdb_req_control request;
+       struct ctdb_reply_control *reply;
+       int ret;
+
+       ctdb_req_control_tunnel_register(&request, tunnel_id);
+       ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+                                 &request, &reply);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     ("Control TUNNEL_REGISTER failed to node %u, ret=%d\n",
+                      destnode, ret));
+               return ret;
+       }
+
+       ret = ctdb_reply_control_tunnel_register(reply);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     ("Control TUNNEL_REGISTER failed, ret=%d\n", ret));
+               return ret;
+       }
+
+       return 0;
+}
+
+int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+                               struct ctdb_client_context *client,
+                               int destnode, struct timeval timeout,
+                               uint64_t tunnel_id)
+{
+       struct ctdb_req_control request;
+       struct ctdb_reply_control *reply;
+       int ret;
+
+       ctdb_req_control_tunnel_deregister(&request, tunnel_id);
+       ret = ctdb_client_control(mem_ctx, ev, client, destnode, timeout,
+                                 &request, &reply);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     ("Control TUNNEL_DEREGISTER failed to node %u, ret=%d\n",
+                      destnode, ret));
+               return ret;
+       }
+
+       ret = ctdb_reply_control_tunnel_deregister(reply);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     ("Control TUNNEL_DEREGISTER failed, ret=%d\n", ret));
+               return ret;
+       }
+
+       return 0;
+}
index c07edf6caf904ef22250f891f3ccee5461dc6259..b29e669fba4e9450be32a1cd25b41f31cfdc7002 100644 (file)
@@ -481,6 +481,16 @@ int ctdb_ctrl_check_pid_srvid(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
                              int destnode, struct timeval timeout,
                              struct ctdb_pid_srvid *pid_srvid, int *status);
 
+int ctdb_ctrl_tunnel_register(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+                             struct ctdb_client_context *client,
+                             int destnode, struct timeval timeout,
+                             uint64_t tunnel_id);
+
+int ctdb_ctrl_tunnel_deregister(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+                               struct ctdb_client_context *client,
+                               int destnode, struct timeval timeout,
+                               uint64_t tunnel_id);
+
 /* from client/client_message_sync.c */
 
 int ctdb_message_recd_update_ip(TALLOC_CTX *mem_ctx, struct tevent_context *ev,