summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb.i
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-01-11 00:23:33 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-01-11 01:04:25 +0100
commit9269db983d847be7a0cdc9eb2bcc4ebe3066be1c (patch)
tree4d6124d8acf980bccc1e4e7022bd9e0d3fa7a91d /source4/lib/ldb/ldb.i
parent4f6177da78d0da64c1cda23bd7a176cfe2e6e140 (diff)
downloadsamba-9269db983d847be7a0cdc9eb2bcc4ebe3066be1c.tar.gz
samba-9269db983d847be7a0cdc9eb2bcc4ebe3066be1c.tar.bz2
samba-9269db983d847be7a0cdc9eb2bcc4ebe3066be1c.zip
python/ldb: Add __getitem__ implementation for LdbMessageElement.
(This used to be commit e6498a0780dd31dfc623a69432004b606aeaccbe)
Diffstat (limited to 'source4/lib/ldb/ldb.i')
-rw-r--r--source4/lib/ldb/ldb.i17
1 files changed, 17 insertions, 0 deletions
diff --git a/source4/lib/ldb/ldb.i b/source4/lib/ldb/ldb.i
index 57cb6b5f47..0ad628fdf5 100644
--- a/source4/lib/ldb/ldb.i
+++ b/source4/lib/ldb/ldb.i
@@ -279,10 +279,27 @@ typedef struct ldb_message_element {
return ldb_msg_element_from_pyobject(NULL, set_obj, flags, name);
}
#endif
+
+ PyObject *get(int i)
+ {
+ if (i < 0 || i >= $self->num_values)
+ return Py_None;
+
+ return PyString_FromStringAndSize(
+ (const char *)$self->values[i].data,
+ $self->values[i].length);
+ }
+
~ldb_msg_element() { talloc_free($self); }
int compare(ldb_msg_element *);
}
%pythoncode {
+ def __getitem__(self, i):
+ ret = self.get(i)
+ if ret is None:
+ raise KeyError("no such value")
+ return ret
+
def __eq__(self, other):
if (isinstance(other, str) and
len(set(self)) == 1 and