summaryrefslogtreecommitdiff
path: root/source4/scripting/python/pyglue.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/scripting/python/pyglue.c')
-rw-r--r--source4/scripting/python/pyglue.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index c6b731ce8b..0869d2feac 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -46,6 +46,15 @@
} */\
ldb = PyLdb_AsLdbContext(py_ldb);
+static void PyErr_SetLdbError(PyObject *error, int ret, struct ldb_context *ldb_ctx)
+{
+ if (ret == LDB_ERR_PYTHON_EXCEPTION)
+ return; /* Python exception should already be set, just keep that */
+
+ PyErr_SetObject(error,
+ Py_BuildValue(discard_const_p(char, "(i,s)"), ret,
+ ldb_ctx == NULL?ldb_strerror(ret):ldb_errstring(ldb_ctx)));
+}
static PyObject *py_ldb_get_exception(void)
{