svn commit: samba r17370 - in branches/SAMBA_4_0/source/lib/ldb/ldb_tdb: .

idra at samba.org idra at samba.org
Wed Aug 2 00:01:09 GMT 2006


Author: idra
Date: 2006-08-02 00:01:09 +0000 (Wed, 02 Aug 2006)
New Revision: 17370

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

Log:

Fix tdb searches, we need to return an LDAP_REPLY_DONE packet when done.
Awesome how this didn't break everything around...


Modified:
   branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_search.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_search.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_search.c	2006-08-01 22:59:36 UTC (rev 17369)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_search.c	2006-08-02 00:01:09 UTC (rev 17370)
@@ -478,6 +478,7 @@
 {
 	struct ltdb_private *ltdb = talloc_get_type(module->private_data, struct ltdb_private);
 	struct ltdb_context *ltdb_ac;
+	struct ldb_reply *ares;
 	int ret;
 
 	if ((req->op.search.base == NULL || req->op.search.base->comp_num == 0) &&
@@ -521,6 +522,20 @@
 		req->handle->status = ret;
 	}
 
+	/* Finally send an LDB_REPLY_DONE packet when searching is finished */
+
+	ares = talloc_zero(req, struct ldb_reply);
+	if (!ares) {
+		ltdb_unlock_read(module);
+		return LDB_ERR_OPERATIONS_ERROR;
+	}
+
+	req->handle->state = LDB_ASYNC_DONE;
+	ares->type = LDB_REPLY_DONE;
+
+	ret = req->callback(module->ldb, req->context, ares);
+	req->handle->status = ret;
+
 	ltdb_unlock_read(module);
 
 	return LDB_SUCCESS;



More information about the samba-cvs mailing list