diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-06-10 17:02:09 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:23:14 -0500 |
commit | de565785f5e1f097bd75f57331425c4185185f80 (patch) | |
tree | af24bb44388f9ffa2077435cc3fea134557c186b /source3/lib/messages.c | |
parent | b05c7b97830f6029c264fc44831c2f5eae4f0c83 (diff) | |
download | samba-de565785f5e1f097bd75f57331425c4185185f80.tar.gz samba-de565785f5e1f097bd75f57331425c4185185f80.tar.xz 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.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c index b796e1472c1..54657d8d563 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 */ |