summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/server.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index c09a0d7b98..491482eea6 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -349,6 +349,14 @@ static BOOL open_sockets_smbd(enum smb_server_mode server_mode, const char *smb_
maxfd = MAX(maxfd, fd_listenset[i]);
}
+
+ /* Setup the main smbd so that we can get messages. Note that
+ do this after starting listening. This is needed as when in
+ clustered mode, ctdb won't allow us to start doing database
+ operations until it has gone thru a full startup, which
+ includes checking to see that smbd is listening. */
+ claim_connection(NULL,"",FLAG_MSG_GENERAL|FLAG_MSG_SMBD);
+
/* Listen to messages */
messaging_register(smbd_messaging_context(), NULL,
@@ -1040,11 +1048,6 @@ extern void build_options(BOOL screen);
return -1;
}
- /* Setup the main smbd so that we can get messages. */
- /* don't worry about general printing messages here */
-
- claim_connection(NULL,"",FLAG_MSG_GENERAL|FLAG_MSG_SMBD);
-
/* only start the background queue daemon if we are
running as a daemon -- bad things will happen if
smbd is launched via inetd and we fork a copy of