summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/messages.c7
-rw-r--r--source3/lib/messages_ctdbd.c9
2 files changed, 16 insertions, 0 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index a7925ace7a..c153953fb7 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -320,6 +320,13 @@ NTSTATUS messaging_send(struct messaging_context *msg_ctx,
struct server_id server, uint32_t msg_type,
const DATA_BLOB *data)
{
+#ifdef CLUSTER_SUPPORT
+ if (!procid_is_local(&server)) {
+ return msg_ctx->remote->send_fn(msg_ctx, server,
+ msg_type, data,
+ msg_ctx->remote);
+ }
+#endif
return msg_ctx->local->send_fn(msg_ctx, server, msg_type, data,
msg_ctx->local);
}
diff --git a/source3/lib/messages_ctdbd.c b/source3/lib/messages_ctdbd.c
index d048bc9aba..dbdc8db3c1 100644
--- a/source3/lib/messages_ctdbd.c
+++ b/source3/lib/messages_ctdbd.c
@@ -94,6 +94,15 @@ NTSTATUS messaging_ctdbd_init(struct messaging_context *msg_ctx,
return status;
}
+ status = ctdbd_register_msg_ctx(ctx->conn, msg_ctx);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("ctdbd_register_msg_ctx failed: %s\n",
+ nt_errstr(status)));
+ TALLOC_FREE(result);
+ return status;
+ }
+
global_ctdbd_connection = ctx->conn;
talloc_set_destructor(ctx, messaging_ctdbd_destructor);