Author: metze
Date: 2006-12-12 18:25:19 +0000 (Tue, 12 Dec 2006)
New Revision: 20126

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20126

Log:
fix talloc hierachy and make lldb a child of module

metze
Modified:
   branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c       2006-12-12 
18:14:31 UTC (rev 20125)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c       2006-12-12 
18:25:19 UTC (rev 20126)
@@ -47,6 +47,7 @@
 
 struct lldb_private {
        LDAP *ldap;
+       struct ldb_module *module;
 };
 
 struct lldb_context {
@@ -786,20 +787,34 @@
                        const char *url, 
                        unsigned int flags, 
                        const char *options[],
-                       struct ldb_module **module)
+                       struct ldb_module **_module)
 {
-       struct lldb_private *lldb = NULL;
+       struct ldb_module *module;
+       struct lldb_private *lldb;
        int version = 3;
        int ret;
 
-       lldb = talloc(ldb, struct lldb_private);
+       module = talloc(ldb, struct ldb_module);
+       if (module == NULL) {
+               ldb_oom(ldb);
+               talloc_free(lldb);
+               return -1;
+       }
+       talloc_set_name_const(module, "ldb_ldap backend");
+       module->ldb             = ldb;
+       module->prev            = module->next = NULL;
+       module->private_data    = NULL;
+       module->ops             = &lldb_ops;
+
+       lldb = talloc(module, struct lldb_private);
        if (!lldb) {
                ldb_oom(ldb);
                goto failed;
        }
+       module->private_data    = lldb;
+       lldb->module            = module;
+       lldb->ldap              = NULL;
 
-       lldb->ldap = NULL;
-
        ret = ldap_initialize(&lldb->ldap, url);
        if (ret != LDAP_SUCCESS) {
                ldb_debug(ldb, LDB_DEBUG_FATAL, "ldap_initialize failed for URL 
'%s' - %s\n",
@@ -816,22 +831,11 @@
                goto failed;
        }
 
-       *module = talloc(ldb, struct ldb_module);
-       if (*module == NULL) {
-               ldb_oom(ldb);
-               talloc_free(lldb);
-               return -1;
-       }
-       talloc_set_name_const(*module, "ldb_ldap backend");
-       (*module)->ldb = ldb;
-       (*module)->prev = (*module)->next = NULL;
-       (*module)->private_data = lldb;
-       (*module)->ops = &lldb_ops;
-
+       *_module = module;
        return 0;
 
 failed:
-       talloc_free(lldb);
+       talloc_free(module);
        return -1;
 }
 

Reply via email to