diff --git a/lib/ldb/pyldb.h b/lib/ldb/pyldb.h index 4fc89ec4814..dbe1d0fdb9e 100644 --- a/lib/ldb/pyldb.h +++ b/lib/ldb/pyldb.h @@ -46,6 +46,8 @@ PyObject *pyldb_Dn_FromDn(struct ldb_dn *); bool pyldb_Object_AsDn(TALLOC_CTX *mem_ctx, PyObject *object, struct ldb_context *ldb_ctx, struct ldb_dn **dn); #define pyldb_Dn_AsDn(pyobj) ((PyLdbDnObject *)pyobj)->dn +bool pyldb_check_type(PyObject *obj, const char *type_name); + typedef struct { PyObject_HEAD TALLOC_CTX *mem_ctx; diff --git a/lib/ldb/pyldb_util.c b/lib/ldb/pyldb_util.c index f8d0664f1e7..a1e3233e6ba 100644 --- a/lib/ldb/pyldb_util.c +++ b/lib/ldb/pyldb_util.c @@ -48,6 +48,17 @@ static PyTypeObject * PyLdb_GetPyType(const char *typename) return (PyTypeObject*)py_obj; } +bool pyldb_check_type(PyObject *obj, const char *typename) +{ + bool ok = false; + PyTypeObject *type = PyLdb_GetPyType(typename); + if (type != NULL) { + ok = PyObject_TypeCheck(obj, type); + Py_DECREF(type); + } + return ok; +} + /** * Obtain a ldb DN from a Python object. *