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

idra at samba.org idra at samba.org
Tue May 30 01:46:15 GMT 2006


Author: idra
Date: 2006-05-30 01:46:14 +0000 (Tue, 30 May 2006)
New Revision: 15945

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

Log:

Check ltdb_modified results


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


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c	2006-05-30 00:33:52 UTC (rev 15944)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c	2006-05-30 01:46:14 UTC (rev 15945)
@@ -256,7 +256,7 @@
 }
 
 
-static int ltdb_add_internal(struct ldb_module *module, struct ldb_message *msg)
+static int ltdb_add_internal(struct ldb_module *module, const struct ldb_message *msg)
 {
 	int ret;
 	
@@ -270,13 +270,15 @@
 	}
 
 	ret = ltdb_store(module, msg, TDB_INSERT);
+	if (ret != LDB_SUCCESS) {
+		return LDB_ERR_OPERATIONS_ERROR;
+	}
 
+	ret = ltdb_modified(module, msg->dn);
 	if (ret != LDB_SUCCESS) {
 		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	ltdb_modified(module, msg->dn);
-
 	return LDB_SUCCESS;
 }
 
@@ -342,7 +344,7 @@
 	return ret;
 }
 
-static int ltdb_delete_internal(struct ldb_module *module, struct ldb_dn *dn)
+static int ltdb_delete_internal(struct ldb_module *module, const struct ldb_dn *dn)
 {
 	struct ldb_message *msg;
 	int ret;
@@ -373,8 +375,12 @@
 		talloc_free(msg);
 		return LDB_ERR_OPERATIONS_ERROR;
 	}
-	ltdb_modified(module, dn);
 
+	ret = ltdb_modified(module, dn);
+	if (ret != LDB_SUCCESS) {
+		return LDB_ERR_OPERATIONS_ERROR;
+	}
+
 	talloc_free(msg);
 	return LDB_SUCCESS;
 }
@@ -718,7 +724,15 @@
 
 	/* we've made all the mods - save the modified record back into the database */
 	ret = ltdb_store(module, msg2, TDB_MODIFY);
+	if (ret != LDB_SUCCESS) {
+		goto failed;
+	}
 
+	if (ltdb_modified(module, msg->dn) != LDB_SUCCESS) {
+		ret = LDB_ERR_OPERATIONS_ERROR;
+		goto failed;
+	}
+
 	talloc_free(tdb_key.dptr);
 	free(tdb_data.dptr);
 	return ret;
@@ -765,14 +779,11 @@
 	}
 
 	tret = ltdb_modify_internal(module, req->op.mod.message);
-
 	if (tret != LDB_SUCCESS) {
 		req->async.handle->status = tret;
 		goto done;
 	}
 
-	ltdb_modified(module, req->op.mod.message->dn);
-
 	if (ltdb_ac->callback)
 		ret = ltdb_ac->callback(module->ldb, ltdb_ac->context, NULL);
 



More information about the samba-cvs mailing list