diff options
author | Andrew Bartlett <abartlet@samba.org> | 2006-06-07 21:03:38 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:08:57 -0500 |
commit | 247af0d569594512a24e83156e257b8d4d356883 (patch) | |
tree | 01cc382ba950b92059d8dd3686016333caf043b1 /source4/lib/ldb/ldb_ldap | |
parent | 2ab5bafd7296e4c2a415a4fcbe8a2ba7b4373699 (diff) | |
download | samba-247af0d569594512a24e83156e257b8d4d356883.tar.gz samba-247af0d569594512a24e83156e257b8d4d356883.tar.xz samba-247af0d569594512a24e83156e257b8d4d356883.zip |
r16083: Make it possible to initialise a backend module, without it setting up
the whole ldb structure.
Because the sequence number was a fn pointer on the main ldb context,
turn it into a full request (currently sync).
Andrew Bartlett
(This used to be commit fbe7d0ca9031e292b2d2fae263233c973982980a)
Diffstat (limited to 'source4/lib/ldb/ldb_ldap')
-rw-r--r-- | source4/lib/ldb/ldb_ldap/ldb_ldap.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source4/lib/ldb/ldb_ldap/ldb_ldap.c b/source4/lib/ldb/ldb_ldap/ldb_ldap.c index 4132fa6c15..c74be37108 100644 --- a/source4/lib/ldb/ldb_ldap/ldb_ldap.c +++ b/source4/lib/ldb/ldb_ldap/ldb_ldap.c @@ -771,9 +771,10 @@ static int lldb_destructor(struct lldb_private *lldb) connect to the database */ static int lldb_connect(struct ldb_context *ldb, - const char *url, - unsigned int flags, - const char *options[]) + const char *url, + unsigned int flags, + const char *options[], + struct ldb_module **module) { struct lldb_private *lldb = NULL; int version = 3; @@ -803,15 +804,16 @@ static int lldb_connect(struct ldb_context *ldb, goto failed; } - ldb->modules = talloc(ldb, struct ldb_module); - if (!ldb->modules) { + *module = talloc(ldb, struct ldb_module); + if (!module) { ldb_oom(ldb); - goto failed; + talloc_free(lldb); + return -1; } - ldb->modules->ldb = ldb; - ldb->modules->prev = ldb->modules->next = NULL; - ldb->modules->private_data = lldb; - ldb->modules->ops = &lldb_ops; + (*module)->ldb = ldb; + (*module)->prev = ldb->modules->next = NULL; + (*module)->private_data = lldb; + (*module)->ops = &lldb_ops; return 0; |