r3586: Fix some of the issues with the module init functions.
[kai/samba.git] / source4 / lib / registry / common / reg_interface.c
index b2d659258dae7f20d289517e2d6bca3c70fc506e..0399fc26aac6f311d1f1e66ad878502b26a26a96 100644 (file)
@@ -59,24 +59,19 @@ NTSTATUS registry_register(const void *_function)
        return NT_STATUS_OK;
 }
 
-static BOOL registry_init(void)
+NTSTATUS registry_init(void)
 {
-       static BOOL initialised;
        NTSTATUS status;
        
-       if(initialised) {
-               return True;
-       }
-       
        status = register_subsystem("registry", registry_register);
        if (NT_STATUS_IS_ERR(status)) {
                DEBUG(0, ("Error registering registry subsystem: %s\n", nt_errstr(status)));
-               return False;
+               return status;
        }
 
-       initialised = True;
-       static_init_registry;
-       return True;
+       registry_init_static_modules;
+
+       return NT_STATUS_OK;
 }
 
 /* Find a backend in the list of available backends */
@@ -84,8 +79,6 @@ static struct reg_init_function_entry *reg_find_backend_entry(const char *name)
 {
        struct reg_init_function_entry *entry;
 
-       if(registry_init() == False) return NULL;
-
        entry = backends;
 
        while(entry) {