summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb/ldb_search.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2007-04-23 00:36:49 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:51:30 -0500
commit9ec83ae25df8e8e55ab1e25de4972ec4d082783b (patch)
tree053b4f03a280e9e3306045a4c5575ba1f208136f /source4/lib/ldb/ldb_tdb/ldb_search.c
parent1912124dbfc501c5109f6ac36e125406078d408c (diff)
downloadsamba-9ec83ae25df8e8e55ab1e25de4972ec4d082783b.tar.gz
samba-9ec83ae25df8e8e55ab1e25de4972ec4d082783b.tar.bz2
samba-9ec83ae25df8e8e55ab1e25de4972ec4d082783b.zip
r22471: Convert more code to use proper LDB error codes.
This is a 1 to 1 convertion, next step is to make this code report an error if the basedn is not used, hopefully avoiding an explicit search on the base object in the most common cases. (This used to be commit 50534c84b4577b2d32565a74a4716088f706bfea)
Diffstat (limited to 'source4/lib/ldb/ldb_tdb/ldb_search.c')
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_search.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_search.c b/source4/lib/ldb/ldb_tdb/ldb_search.c
index 6890378185..838f599642 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_search.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_search.c
@@ -207,7 +207,8 @@ static struct ldb_message *ltdb_pull_attrs(struct ldb_module *module,
search the database for a single simple dn, returning all attributes
in a single message
- return 1 on success, 0 on record-not-found and -1 on error
+ return LDB_ERR_NO_SUCH_OBJECT on record-not-found
+ and LDB_SUCCESS on success
*/
int ltdb_search_dn1(struct ldb_module *module, struct ldb_dn *dn, struct ldb_message *msg)
{
@@ -220,13 +221,13 @@ int ltdb_search_dn1(struct ldb_module *module, struct ldb_dn *dn, struct ldb_mes
/* form the key */
tdb_key = ltdb_key(module, dn);
if (!tdb_key.dptr) {
- return -1;
+ return LDB_ERR_OPERATIONS_ERROR;
}
tdb_data = tdb_fetch(ltdb->tdb, tdb_key);
talloc_free(tdb_key.dptr);
if (!tdb_data.dptr) {
- return 0;
+ return LDB_ERR_NO_SUCH_OBJECT;
}
msg->num_elements = 0;
@@ -235,17 +236,17 @@ int ltdb_search_dn1(struct ldb_module *module, struct ldb_dn *dn, struct ldb_mes
ret = ltdb_unpack_data(module, &tdb_data, msg);
free(tdb_data.dptr);
if (ret == -1) {
- return -1;
+ return LDB_ERR_OPERATIONS_ERROR;
}
if (!msg->dn) {
msg->dn = ldb_dn_copy(msg, dn);
}
if (!msg->dn) {
- return -1;
+ return LDB_ERR_OPERATIONS_ERROR;
}
- return 1;
+ return LDB_SUCCESS;
}
/*
@@ -495,7 +496,7 @@ int ltdb_search(struct ldb_module *module, struct ldb_request *req)
ltdb_ac->attrs = req->op.search.attrs;
ret = ltdb_search_indexed(req->handle);
- if (ret == -1) {
+ if (ret == LDB_ERR_OPERATIONS_ERROR) {
ret = ltdb_search_full(req->handle);
}
if (ret != LDB_SUCCESS) {