summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2018-02-15 11:57:44 +1100
committerAmitay Isaacs <amitay@samba.org>2019-10-24 04:06:42 +0000
commitb71d8cd80f84169bacf2dd1e753e468a305c50ce (patch)
tree7dbe47412c94fef343df6cfea0b2f3f7e30a31ea /ctdb
parent0872c52ef0497f96f53318cf7e4d31be0854adde (diff)
downloadsamba-b71d8cd80f84169bacf2dd1e753e468a305c50ce.tar.gz
ctdb-protocol: Add marshalling for new control VACUUM_FETCH
Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/protocol/protocol_api.h4
-rw-r--r--ctdb/protocol/protocol_client.c24
-rw-r--r--ctdb/protocol/protocol_control.c22
-rw-r--r--ctdb/protocol/protocol_debug.c1
4 files changed, 51 insertions, 0 deletions
diff --git a/ctdb/protocol/protocol_api.h b/ctdb/protocol/protocol_api.h
index 6104c10e7b5..cf4c4635dd4 100644
--- a/ctdb/protocol/protocol_api.h
+++ b/ctdb/protocol/protocol_api.h
@@ -603,6 +603,10 @@ 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);
+void ctdb_req_control_vacuum_fetch(struct ctdb_req_control *request,
+ struct ctdb_rec_buffer *recbuf);
+int ctdb_reply_control_vacuum_fetch(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 2617c7a3d9f..09909d39e58 100644
--- a/ctdb/protocol/protocol_client.c
+++ b/ctdb/protocol/protocol_client.c
@@ -2337,3 +2337,27 @@ int ctdb_reply_control_tunnel_deregister(struct ctdb_reply_control *reply)
return reply->status;
}
+
+/* CTDB_CONTROL_VACUUM_FETCH */
+
+void ctdb_req_control_vacuum_fetch(struct ctdb_req_control *request,
+ struct ctdb_rec_buffer *recbuf)
+{
+ request->opcode = CTDB_CONTROL_VACUUM_FETCH;
+ request->pad = 0;
+ request->srvid = 0;
+ request->client_id = 0;
+ request->flags = 0;
+
+ request->rdata.opcode = CTDB_CONTROL_VACUUM_FETCH;
+ request->rdata.data.recbuf = recbuf;
+}
+
+int ctdb_reply_control_vacuum_fetch(struct ctdb_reply_control *reply)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_VACUUM_FETCH) {
+ return EPROTO;
+ }
+
+ return reply->status;
+}
diff --git a/ctdb/protocol/protocol_control.c b/ctdb/protocol/protocol_control.c
index b2d17611108..1cc985a71a7 100644
--- a/ctdb/protocol/protocol_control.c
+++ b/ctdb/protocol/protocol_control.c
@@ -407,6 +407,10 @@ static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
case CTDB_CONTROL_TUNNEL_DEREGISTER:
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ len = ctdb_rec_buffer_len(cd->data.recbuf);
+ break;
}
return len;
@@ -682,6 +686,10 @@ static void ctdb_req_control_data_push(struct ctdb_req_control_data *cd,
case CTDB_CONTROL_CHECK_PID_SRVID:
ctdb_pid_srvid_push(cd->data.pid_srvid, buf, &np);
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ ctdb_rec_buffer_push(cd->data.recbuf, buf, &np);
+ break;
}
*npush = np;
@@ -1006,6 +1014,11 @@ static int ctdb_req_control_data_pull(uint8_t *buf, size_t buflen,
ret = ctdb_pid_srvid_pull(buf, buflen, mem_ctx,
&cd->data.pid_srvid, &np);
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ ret = ctdb_rec_buffer_pull(buf, buflen, mem_ctx,
+ &cd->data.recbuf, &np);
+ break;
}
if (ret != 0) {
@@ -1363,6 +1376,9 @@ static size_t ctdb_reply_control_data_len(struct ctdb_reply_control_data *cd)
case CTDB_CONTROL_TUNNEL_DEREGISTER:
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ break;
}
return len;
@@ -1517,6 +1533,9 @@ static void ctdb_reply_control_data_push(struct ctdb_reply_control_data *cd,
case CTDB_CONTROL_CHECK_PID_SRVID:
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ break;
}
*npush = np;
@@ -1701,6 +1720,9 @@ static int ctdb_reply_control_data_pull(uint8_t *buf, size_t buflen,
case CTDB_CONTROL_CHECK_PID_SRVID:
break;
+
+ case CTDB_CONTROL_VACUUM_FETCH:
+ break;
}
if (ret != 0) {
diff --git a/ctdb/protocol/protocol_debug.c b/ctdb/protocol/protocol_debug.c
index a34f5a86947..97903ea98f4 100644
--- a/ctdb/protocol/protocol_debug.c
+++ b/ctdb/protocol/protocol_debug.c
@@ -242,6 +242,7 @@ static void ctdb_opcode_print(uint32_t opcode, FILE *fp)
{ CTDB_CONTROL_CHECK_PID_SRVID, "CHECK_PID_SRVID" },
{ CTDB_CONTROL_TUNNEL_REGISTER, "TUNNEL_REGISTER" },
{ CTDB_CONTROL_TUNNEL_DEREGISTER, "TUNNEL_DEREGISTER" },
+ { CTDB_CONTROL_VACUUM_FETCH, "VACUUM_FETCH" },
{ MAP_END, "" },
};