diff options
-rw-r--r-- | source3/smbd/server.c | 13 |
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 |