svn commit: samba r21760 - in branches/SAMBA_4_0/source/lib/ldb/common: .

abartlet at samba.org abartlet at samba.org
Thu Mar 8 03:32:28 GMT 2007


Author: abartlet
Date: 2007-03-08 03:32:28 +0000 (Thu, 08 Mar 2007)
New Revision: 21760

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

Log:
Try to pin down were some errors are coming from.  Ensure we at least
name the module.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/lib/ldb/common/ldb_modules.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_modules.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb_modules.c	2007-03-08 03:00:42 UTC (rev 21759)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_modules.c	2007-03-08 03:32:28 UTC (rev 21760)
@@ -392,32 +392,49 @@
 
 int ldb_next_request(struct ldb_module *module, struct ldb_request *request)
 {
+	int ret;
 	switch (request->operation) {
 	case LDB_SEARCH:
 		FIND_OP(module, search);
-		return module->ops->search(module, request);
+		ret = module->ops->search(module, request);
+		break;
 	case LDB_ADD:
 		FIND_OP(module, add);
-		return module->ops->add(module, request);
+		ret = module->ops->add(module, request);
+		break;
 	case LDB_MODIFY:
 		FIND_OP(module, modify);
-		return module->ops->modify(module, request);
+		ret = module->ops->modify(module, request);
+		break;
 	case LDB_DELETE:
 		FIND_OP(module, del);
-		return module->ops->del(module, request);
+		ret = module->ops->del(module, request);
+		break;
 	case LDB_RENAME:
 		FIND_OP(module, rename);
-		return module->ops->rename(module, request);
+		ret = module->ops->rename(module, request);
+		break;
 	case LDB_EXTENDED:
 		FIND_OP(module, extended);
-		return module->ops->extended(module, request);
+		ret = module->ops->extended(module, request);
+		break;
 	case LDB_SEQUENCE_NUMBER:
 		FIND_OP(module, sequence_number);
-		return module->ops->sequence_number(module, request);
+		ret = module->ops->sequence_number(module, request);
+		break;
 	default:
 		FIND_OP(module, request);
-		return module->ops->request(module, request);
+		ret = module->ops->request(module, request);
+		break;
 	}
+	if (ret == LDB_SUCCESS) {
+		return ret;
+	}
+	if (!ldb_errstring(module->ldb)) {
+		/* Set a default error string, to place the blame somewhere */
+		ldb_asprintf_errstring(module->ldb, "error in module %s: %s", module->ops->name, ldb_strerror(ret));
+	}
+	return ret;
 }
 
 int ldb_next_init(struct ldb_module *module)



More information about the samba-cvs mailing list