summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/messages.h3
-rw-r--r--source3/lib/messages.c5
-rw-r--r--source3/lib/util.c6
3 files changed, 9 insertions, 5 deletions
diff --git a/source3/include/messages.h b/source3/include/messages.h
index 865ffd4822..805889a805 100644
--- a/source3/include/messages.h
+++ b/source3/include/messages.h
@@ -130,7 +130,8 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
/*
* re-init after a fork
*/
-NTSTATUS messaging_reinit(struct messaging_context *msg_ctx);
+NTSTATUS messaging_reinit(struct messaging_context *msg_ctx,
+ struct server_id id);
NTSTATUS messaging_register(struct messaging_context *msg_ctx,
void *private_data,
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index 2fcdc24179..d53297e502 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -226,12 +226,15 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
/*
* re-init after a fork
*/
-NTSTATUS messaging_reinit(struct messaging_context *msg_ctx)
+NTSTATUS messaging_reinit(struct messaging_context *msg_ctx,
+ struct server_id id)
{
NTSTATUS status;
TALLOC_FREE(msg_ctx->local);
+ msg_ctx->id = id;
+
status = messaging_tdb_init(msg_ctx, msg_ctx, &msg_ctx->local);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("messaging_tdb_init failed: %s\n",
diff --git a/source3/lib/util.c b/source3/lib/util.c
index d7e765d1af..1467c5445d 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -872,8 +872,8 @@ void smb_msleep(unsigned int t)
}
NTSTATUS reinit_after_fork(struct messaging_context *msg_ctx,
- struct event_context *ev_ctx,
- bool parent_longlived)
+ struct event_context *ev_ctx,
+ bool parent_longlived)
{
NTSTATUS status = NT_STATUS_OK;
@@ -899,7 +899,7 @@ NTSTATUS reinit_after_fork(struct messaging_context *msg_ctx,
* For clustering, we need to re-init our ctdbd connection after the
* fork
*/
- status = messaging_reinit(msg_ctx);
+ status = messaging_reinit(msg_ctx, procid_self());
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("messaging_reinit() failed: %s\n",
nt_errstr(status)));