ldb:pyldb.c - "py_ldb_contains" - return only "0" not found, "1" found, "-1" error
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Sat, 6 Nov 2010 16:49:18 +0000 (17:49 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Mon, 8 Nov 2010 10:39:05 +0000 (10:39 +0000)
source4/lib/ldb/pyldb.c

index 2f87b8cdc3a5c8549b58de14338201613d429eff..40d7204c356006a4cb89d77160d7c4e31495ef18 100644 (file)
@@ -1425,13 +1425,14 @@ static int py_ldb_contains(PyLdbObject *self, PyObject *obj)
        struct ldb_context *ldb_ctx = PyLdb_AsLdbContext(self);
        struct ldb_dn *dn;
        struct ldb_result *result;
+       unsigned int count;
        int ret;
-       int count;
 
        if (!PyObject_AsDn(ldb_ctx, obj, ldb_ctx, &dn))
                return -1;
 
-       ret = ldb_search(ldb_ctx, ldb_ctx, &result, dn, LDB_SCOPE_BASE, NULL, NULL);
+       ret = ldb_search(ldb_ctx, ldb_ctx, &result, dn, LDB_SCOPE_BASE, NULL,
+                        NULL);
        if (ret != LDB_SUCCESS) {
                PyErr_SetLdbError(PyExc_LdbError, ret, ldb_ctx);
                return -1;
@@ -1441,7 +1442,13 @@ static int py_ldb_contains(PyLdbObject *self, PyObject *obj)
 
        talloc_free(result);
 
-       return count;
+       if (count == 1) {
+               return 1;
+       } else if (count == 0) {
+               return 0;
+       }
+
+       return -1;
 }
 
 static PySequenceMethods py_ldb_seq = {