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; }