r14952: Make sure the auth subsystem gets initialized if a gensec module needs it.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 6 Apr 2006 16:08:46 +0000 (16:08 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:00:22 +0000 (14:00 -0500)
(This used to be commit ecf84248b48783fb0ccbeff4d37d930b21fb96df)

source4/auth/auth.c
source4/auth/gensec/gensec.c
source4/auth/gensec/gensec_krb5.c
source4/auth/ntlmssp/ntlmssp.c

index b4a473a6904718da175e706bbfd24ecccce33f81..140aa57b155ad54c9c15e87dd6d3be4385aee860 100644 (file)
@@ -333,10 +333,17 @@ const struct auth_critical_sizes *auth_interface_version(void)
        return &critical_sizes;
 }
 
-NTSTATUS server_service_auth_init(void)
+NTSTATUS auth_init(void)
 {
+       static BOOL initialized = False;
+
        init_module_fn static_init[] = STATIC_auth_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "auth");
+       init_module_fn *shared_init;
+       
+       if (initialized) return NT_STATUS_OK;
+       initialized = True;
+       
+       shared_init = load_samba_modules(NULL, "auth");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
@@ -345,3 +352,8 @@ NTSTATUS server_service_auth_init(void)
        
        return NT_STATUS_OK;    
 }
+
+NTSTATUS server_service_auth_init(void)
+{
+       return auth_init();
+}
index c334e544739cddb03197a5ece5bff38751a4637f..429aa433d7055877c43ab390ce83ee222d99f012 100644 (file)
@@ -1131,10 +1131,12 @@ NTSTATUS gensec_init(void)
        static BOOL initialized = False;
 
        init_module_fn static_init[] = STATIC_gensec_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "gensec");
+       init_module_fn *shared_init;
 
        if (initialized) return NT_STATUS_OK;
        initialized = True;
+       
+       shared_init = load_samba_modules(NULL, "gensec");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 9f5d38a01b4a34164c591c985651777533c72518..f2f3361bf95dbe2d72cc07b653222f54f95f8c69 100644 (file)
@@ -754,6 +754,8 @@ NTSTATUS gensec_krb5_init(void)
 {
        NTSTATUS ret;
 
+       auth_init();
+
        ret = gensec_register(&gensec_krb5_security_ops);
        if (!NT_STATUS_IS_OK(ret)) {
                DEBUG(0,("Failed to register '%s' gensec backend!\n",
index dfef8929761b88a96ddd0ee826b88b8af6065033..fff0c9c7e9c4634ad107534979ef25fb58689a2e 100644 (file)
@@ -404,6 +404,9 @@ static const struct gensec_security_ops gensec_ntlmssp_security_ops = {
 NTSTATUS gensec_ntlmssp_init(void)
 {
        NTSTATUS ret;
+
+       auth_init();
+
        ret = gensec_register(&gensec_ntlmssp_security_ops);
        if (!NT_STATUS_IS_OK(ret)) {
                DEBUG(0,("Failed to register '%s' gensec backend!\n",