summaryrefslogtreecommitdiff
path: root/source4/auth
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-06 23:23:15 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:36 -0500
commit71db46ea665606384f2be1be708c74c97c9adfb2 (patch)
tree24c84e12f4fc925f3ec1e69348493d7222df1e44 /source4/auth
parentb012ab557b8f8a2f58dfbbe8b7818f3e6d8cf38f (diff)
downloadsamba-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.c19
-rw-r--r--source4/auth/config.mk4
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 = \