diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-11-06 23:23:15 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:36 -0500 |
commit | 71db46ea665606384f2be1be708c74c97c9adfb2 (patch) | |
tree | 24c84e12f4fc925f3ec1e69348493d7222df1e44 /source4/auth | |
parent | b012ab557b8f8a2f58dfbbe8b7818f3e6d8cf38f (diff) | |
download | samba-71db46ea665606384f2be1be708c74c97c9adfb2.tar.gz samba-71db46ea665606384f2be1be708c74c97c9adfb2.tar.bz2 samba-71db46ea665606384f2be1be708c74c97c9adfb2.zip |
r3586: Fix some of the issues with the module init functions.
Both subsystems and modules can now have init functions, which can be
specified in .mk files (INIT_FUNCTION = ...)
The build system will define :
- SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal
- BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on
This removes the hack with the "static bool Initialised = " and the
"lazy_init" functions
(This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
Diffstat (limited to 'source4/auth')
-rw-r--r-- | source4/auth/auth.c | 19 | ||||
-rw-r--r-- | source4/auth/config.mk | 4 |
2 files changed, 9 insertions, 14 deletions
diff --git a/source4/auth/auth.c b/source4/auth/auth.c index ae8b29e87d..58075b4c75 100644 --- a/source4/auth/auth.c +++ b/source4/auth/auth.c @@ -480,28 +480,19 @@ const struct auth_critical_sizes *auth_interface_version(void) /* initialise the AUTH subsystem */ -BOOL auth_init(void) +NTSTATUS auth_init(void) { NTSTATUS status; - /* ugly cludge, to go away */ - static BOOL initialised; - - if (initialised) { - return True; - } - status = register_subsystem("auth", auth_register); if (!NT_STATUS_IS_OK(status)) { - return False; + return status; } - /* FIXME: Perhaps panic if a basic backend, such as SAM, fails to initialise? */ - static_init_auth; - - initialised = True; + auth_init_static_modules; + DEBUG(3,("AUTH subsystem version %d initialised\n", AUTH_INTERFACE_VERSION)); - return True; + return status; } NTSTATUS server_service_auth_init(void) diff --git a/source4/auth/config.mk b/source4/auth/config.mk index 9272dda193..46808cba72 100644 --- a/source4/auth/config.mk +++ b/source4/auth/config.mk @@ -3,6 +3,7 @@ ####################### # Start MODULE auth_sam [MODULE::auth_sam] +INIT_FUNCTION = auth_sam_init INIT_OBJ_FILES = \ auth/auth_sam.o REQUIRED_SUBSYSTEMS = \ @@ -13,6 +14,7 @@ REQUIRED_SUBSYSTEMS = \ ####################### # Start MODULE auth_builtin [MODULE::auth_builtin] +INIT_FUNCTION = auth_builtin_init INIT_OBJ_FILES = \ auth/auth_builtin.o # End MODULE auth_builtin @@ -21,6 +23,7 @@ INIT_OBJ_FILES = \ ####################### # Start MODULE auth_winbind [MODULE::auth_winbind] +INIT_FUNCTION = auth_winbind_init INIT_OBJ_FILES = \ auth/auth_winbind.o REQUIRED_SUBSYSTEMS = \ @@ -31,6 +34,7 @@ REQUIRED_SUBSYSTEMS = \ ####################### # Start SUBSYSTEM AUTH [SUBSYSTEM::AUTH] +INIT_FUNCTION = auth_init INIT_OBJ_FILES = \ auth/auth.o ADD_OBJ_FILES = \ |