diff options
Diffstat (limited to 'source4/smbd')
-rw-r--r-- | source4/smbd/config.mk | 5 | ||||
-rw-r--r-- | source4/smbd/process_model.c | 9 | ||||
-rw-r--r-- | source4/smbd/process_model.mk | 6 | ||||
-rw-r--r-- | source4/smbd/rewrite.c | 21 | ||||
-rw-r--r-- | source4/smbd/service.c | 9 |
5 files changed, 19 insertions, 31 deletions
diff --git a/source4/smbd/config.mk b/source4/smbd/config.mk index 55f040f805..7c5fe74da9 100644 --- a/source4/smbd/config.mk +++ b/source4/smbd/config.mk @@ -3,6 +3,7 @@ ################################################ # Start MODULE server_service_auth [MODULE::server_service_auth] +INIT_FUNCTION = server_service_auth_init REQUIRED_SUBSYSTEMS = \ AUTH # End MODULE server_auth @@ -11,6 +12,7 @@ REQUIRED_SUBSYSTEMS = \ ################################################ # Start MODULE server_service_smb [MODULE::server_service_smb] +INIT_FUNCTION = server_service_smb_init REQUIRED_SUBSYSTEMS = \ SMB # End MODULE server_smb @@ -19,6 +21,7 @@ REQUIRED_SUBSYSTEMS = \ ################################################ # Start MODULE server_service_rpc [MODULE::server_service_rpc] +INIT_FUNCTION = server_service_rpc_init REQUIRED_SUBSYSTEMS = \ DCERPC # End MODULE server_rpc @@ -27,6 +30,7 @@ REQUIRED_SUBSYSTEMS = \ ################################################ # Start MODULE server_service_ldap [MODULE::server_service_ldap] +INIT_FUNCTION = server_service_ldap_init REQUIRED_SUBSYSTEMS = \ LDAP # End MODULE server_ldap @@ -35,6 +39,7 @@ REQUIRED_SUBSYSTEMS = \ ####################### # Start SUBSYSTEM SERVICE [SUBSYSTEM::SERVER_SERVICE] +INIT_FUNCTION = server_service_init INIT_OBJ_FILES = \ smbd/service.o REQUIRED_SUBSYSTEMS = \ diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c index 3493425774..69e321e0c2 100644 --- a/source4/smbd/process_model.c +++ b/source4/smbd/process_model.c @@ -118,18 +118,17 @@ const struct process_model_critical_sizes *process_model_version(void) /* initialise the PROCESS_MODEL subsystem */ -BOOL process_model_init(void) +NTSTATUS process_model_init(void) { NTSTATUS status; status = register_subsystem("process_model", register_process_model); if (!NT_STATUS_IS_OK(status)) { - return False; + return status; } - /* FIXME: Perhaps panic if a basic process model, such as simple, fails to initialise? */ - static_init_process_model; + process_model_init_static_modules; DEBUG(3,("PROCESS subsystem version %d initialised\n", PROCESS_MODEL_VERSION)); - return True; + return NT_STATUS_OK; } diff --git a/source4/smbd/process_model.mk b/source4/smbd/process_model.mk index 6a4048700f..d4329e2014 100644 --- a/source4/smbd/process_model.mk +++ b/source4/smbd/process_model.mk @@ -3,6 +3,7 @@ ################################################ # Start MODULE process_model_single [MODULE::process_model_single] +INIT_FUNCTION = process_model_single_init INIT_OBJ_FILES = \ smbd/process_single.o # End MODULE process_model_single @@ -11,6 +12,7 @@ INIT_OBJ_FILES = \ ################################################ # Start MODULE process_model_standard [MODULE::process_model_standard] +INIT_FUNCTION = process_model_standard_init INIT_OBJ_FILES = \ smbd/process_standard.o # End MODULE process_model_standard @@ -19,6 +21,7 @@ INIT_OBJ_FILES = \ ################################################ # Start MODULE process_model_thread [MODULE::process_model_thread] +INIT_FUNCTION = process_model_thread_init INIT_OBJ_FILES = \ smbd/process_thread.o REQUIRED_LIBRARIES = \ @@ -29,8 +32,9 @@ REQUIRED_LIBRARIES = \ ################################################ # Start SUBSYSTEM PROCESS_MODEL [SUBSYSTEM::PROCESS_MODEL] +INIT_FUNCTION = process_model_init INIT_OBJ_FILES = \ smbd/process_model.o # # End SUBSYSTEM PROCESS_MODEL -################################################
\ No newline at end of file +################################################ diff --git a/source4/smbd/rewrite.c b/source4/smbd/rewrite.c index 0e9260535c..d22e3c28c3 100644 --- a/source4/smbd/rewrite.c +++ b/source4/smbd/rewrite.c @@ -41,26 +41,7 @@ void init_subsystems(void) exit(1); } - /* Setup the PROCESS_MODEL subsystem */ - if (!process_model_init()) - exit(1); - - /* Setup the SERVER_SERVICE subsystem */ - if (!server_service_init()) - exit(1); - - /* Setup the AUTH subsystem */ - if (!auth_init()) - exit(1); - - /* Setup the NTVFS subsystem */ - if (!ntvfs_init()) - exit(1); - - /* Setup the DCERPC subsystem */ - if (!subsystem_dcerpc_init()) - exit(1); - + smbd_init_subsystems; } /**************************************************************************** diff --git a/source4/smbd/service.c b/source4/smbd/service.c index 767d310e2b..fdbd5d0c80 100644 --- a/source4/smbd/service.c +++ b/source4/smbd/service.c @@ -321,20 +321,19 @@ static NTSTATUS register_server_service_ops(const void *_ops) /* initialise the SERVER SERVICE subsystem */ -BOOL server_service_init(void) +NTSTATUS server_service_init(void) { NTSTATUS status; status = register_subsystem("service", register_server_service_ops); if (!NT_STATUS_IS_OK(status)) { - return False; + return status; } - /* FIXME: Perhaps panic if a basic endpoint server, such as EPMAPER, fails to initialise? */ - static_init_server_service; + server_service_init_static_modules; DEBUG(3,("SERVER SERVICE subsystem version %d initialised\n", SERVER_SERVICE_VERSION)); - return True; + return NT_STATUS_OK; } |