summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/smbd/process.c17
-rw-r--r--source4/smbd/server.c4
2 files changed, 15 insertions, 6 deletions
diff --git a/source4/smbd/process.c b/source4/smbd/process.c
index 183f0655da..d06fbf9a44 100644
--- a/source4/smbd/process.c
+++ b/source4/smbd/process.c
@@ -70,6 +70,19 @@ void smbd_process_init(void)
if (!init_change_notify())
exit(1);
+ /* Setup the PASSDB subsystem */
+ if(!initialize_password_db(False))
+ exit(1);
+
+ talloc_destroy(mem_ctx);
+}
+
+void init_subsystems(void)
+{
+ /* Setup the PROCESS_MODEL subsystem */
+ if (!process_model_init())
+ exit(1);
+
/* Setup the AUTH subsystem */
if (!auth_init())
exit(1);
@@ -77,8 +90,6 @@ void smbd_process_init(void)
/* Setup the PASSDB subsystem */
if (!passdb_init())
exit(1);
- if(!initialize_password_db(False))
- exit(1);
/* Setup the NTVFS subsystem */
if (!ntvfs_init())
@@ -88,6 +99,4 @@ void smbd_process_init(void)
if (!dcesrv_init())
exit(1);
- talloc_destroy(mem_ctx);
}
-
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index 90955ff6cb..f32d6a0702 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -196,8 +196,6 @@ static void setup_process_model(struct event_context *events,
{
const struct model_ops *ops;
- process_model_init();
-
ops = process_model_byname(model);
if (!ops) {
DEBUG(0,("Unknown process model '%s'\n", model));
@@ -343,6 +341,8 @@ static void setup_process_model(struct event_context *events,
register_msg_pool_usage();
register_dmalloc_msgs();
+ init_subsystems();
+
setup_process_model(events, model);
/* wait for events */