summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/nmbd/nmbd.c')
-rw-r--r--source3/nmbd/nmbd.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c
index 01fdbbc5a4..9396219ea7 100644
--- a/source3/nmbd/nmbd.c
+++ b/source3/nmbd/nmbd.c
@@ -762,6 +762,8 @@ static bool open_sockets(bool isdaemon, int port)
};
TALLOC_CTX *frame = talloc_stackframe(); /* Setup tos. */
+ db_tdb2_setup_messaging(NULL, false);
+
load_case_tables();
global_nmb_port = NMB_PORT;
@@ -847,7 +849,16 @@ static bool open_sockets(bool isdaemon, int port)
DEBUG(0,("nmbd version %s started.\n", SAMBA_VERSION_STRING));
DEBUGADD(0,("%s\n", COPYRIGHT_STARTUP_MESSAGE));
- db_tdb2_setup_messaging(NULL, false);
+ if (!lp_load_initial_only(get_dyn_CONFIGFILE())) {
+ DEBUG(0, ("error opening config file\n"));
+ exit(1);
+ }
+
+ if (nmbd_messaging_context() == NULL) {
+ return 1;
+ }
+
+ db_tdb2_setup_messaging(nmbd_messaging_context(), true);
if ( !reload_nmbd_services(False) )
return(-1);
@@ -901,6 +912,11 @@ static bool open_sockets(bool isdaemon, int port)
pidfile_create("nmbd");
+ if (!reinit_after_fork(nmbd_messaging_context())) {
+ DEBUG(0,("reinit_after_fork() failed\n"));
+ exit(1);
+ }
+
/* get broadcast messages */
claim_connection(NULL,"",FLAG_MSG_GENERAL|FLAG_MSG_DBWRAP);
@@ -918,8 +934,6 @@ static bool open_sockets(bool isdaemon, int port)
messaging_register(nmbd_messaging_context(), NULL,
MSG_SEND_PACKET, msg_nmbd_send_packet);
- db_tdb2_setup_messaging(nmbd_messaging_context(), true);
-
TimeInit();
DEBUG( 3, ( "Opening sockets %d\n", global_nmb_port ) );