From 9956009a41f2489abefa0a7a21553fb0b78e1fed Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Tue, 4 Apr 2006 22:15:27 +0000 Subject: r14915: Work in progress - getting ldb_add() working. (This used to be commit d50661ed4ef3f6c96811649a1acbe5d702e80654) --- source4/scripting/swig/ldb.i | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source4/scripting/swig/ldb.i') diff --git a/source4/scripting/swig/ldb.i b/source4/scripting/swig/ldb.i index 6930ea4c9b..31c1ffe3e4 100644 --- a/source4/scripting/swig/ldb.i +++ b/source4/scripting/swig/ldb.i @@ -156,6 +156,30 @@ struct ldb_message { void *private_data; /* private to the backend */ }; +%typemap(in) struct ldb_message * { + PyObject *obj, *key, *value; + int pos; + + $1 = ldb_msg_new(NULL); + + obj = PyObject_GetAttrString($input, "dn"); + $1->dn = ldb_dn_explode(NULL, PyString_AsString(obj)); + + obj = PyObject_GetAttrString($input, "private_data"); + $1->private_data = PyString_AsString(obj); + + obj = PyObject_GetAttrString($input, "elements"); + + pos = 0; + while (PyDict_Next(obj, &pos, &key, &value)) { + struct ldb_val v; + + v.data = PyString_AsString(value); + v.length = PyString_Size(value); + ldb_msg_add_value($1, PyString_AsString(key), &v); + } +} + /* * Wrap struct ldb_result */ -- cgit