From 5a3c64668a33fc3fa8f87a78d06fa040eed9f8f8 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 4 Jul 2010 16:18:12 +0200 Subject: s3: Re-initialize the server_id in messaging_reinit --- source3/include/messages.h | 3 ++- source3/lib/messages.c | 5 ++++- source3/lib/util.c | 6 +++--- 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))); -- cgit