summaryrefslogtreecommitdiff
path: root/source3/lib/messages.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-06-10 17:02:09 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:23:14 -0500
commitde565785f5e1f097bd75f57331425c4185185f80 (patch)
treeaf24bb44388f9ffa2077435cc3fea134557c186b /source3/lib/messages.c
parentb05c7b97830f6029c264fc44831c2f5eae4f0c83 (diff)
downloadsamba-de565785f5e1f097bd75f57331425c4185185f80.tar.gz
samba-de565785f5e1f097bd75f57331425c4185185f80.tar.bz2
samba-de565785f5e1f097bd75f57331425c4185185f80.zip
r23410: Merge the core of the cluster code.
I'm 100% certain I've forgotten to merge something, but the main code should be in. It's mainly in dbwrap_ctdb.c, ctdbd_conn.c and messages_ctdbd.c. There should be no changes to the non-cluster case, it does survive make test on my laptop. It survives some very basic tests with ctdbd enables, I did not do the full test suite for clusters yet. Phew... Volker (This used to be commit 15553d6327a3aecdd2b0b94a3656d04bf4106323)
Diffstat (limited to 'source3/lib/messages.c')
-rw-r--r--source3/lib/messages.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index b796e1472c..54657d8d56 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -205,6 +205,19 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
return NULL;
}
+#ifdef CLUSTER_SUPPORT
+ if (lp_clustering()) {
+ status = messaging_ctdbd_init(ctx, ctx, &ctx->remote);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("messaging_ctdb_init failed: %s\n",
+ nt_errstr(status)));
+ TALLOC_FREE(ctx);
+ return NULL;
+ }
+ }
+#endif
+
messaging_register(ctx, NULL, MSG_PING, ping_message);
/* Register some debugging related messages */
@@ -217,6 +230,34 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
}
/*
+ * re-init after a fork
+ */
+NTSTATUS messaging_reinit(struct messaging_context *msg_ctx)
+{
+#ifdef CLUSTER_SUPPORT
+
+ TALLOC_FREE(msg_ctx->remote);
+
+ if (lp_clustering()) {
+ NTSTATUS status;
+
+ status = messaging_ctdbd_init(msg_ctx, msg_ctx,
+ &msg_ctx->remote);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("messaging_ctdb_init failed: %s\n",
+ nt_errstr(status)));
+ return status;
+ }
+ }
+
+#endif
+
+ return NT_STATUS_OK;
+}
+
+
+/*
* Register a dispatch function for a particular message type. Allow multiple
* registrants
*/