summaryrefslogtreecommitdiff
path: root/source3/python
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2002-05-17 02:24:06 +0000
committerTim Potter <tpot@samba.org>2002-05-17 02:24:06 +0000
commit119716f16215ba00bc557cff9e60009cca61cc64 (patch)
tree3771d2be5c56a7a46260f21c59e1cc9d7a0f6f4a /source3/python
parent67656e58f69b4452f5ed6cadd6f1884552db5cd7 (diff)
downloadsamba-119716f16215ba00bc557cff9e60009cca61cc64.tar.gz
samba-119716f16215ba00bc557cff9e60009cca61cc64.tar.bz2
samba-119716f16215ba00bc557cff9e60009cca61cc64.zip
to_struct() now returns a boolean which is false if not all the elements of
the structure were present in the dictionary. (This used to be commit b26d9d793914b66050c374ec2c0e94fa37c7e0e4)
Diffstat (limited to 'source3/python')
-rw-r--r--source3/python/py_conv.c7
-rw-r--r--source3/python/py_conv.h2
2 files changed, 7 insertions, 2 deletions
diff --git a/source3/python/py_conv.c b/source3/python/py_conv.c
index 2dc12f348a..c6f39515af 100644
--- a/source3/python/py_conv.c
+++ b/source3/python/py_conv.c
@@ -78,7 +78,7 @@ PyObject *from_struct(void *s, struct pyconv *conv)
/* Convert a Python dict to a structure */
-void to_struct(void *s, PyObject *dict, struct pyconv *conv)
+BOOL to_struct(void *s, PyObject *dict, struct pyconv *conv)
{
int i;
@@ -86,6 +86,9 @@ void to_struct(void *s, PyObject *dict, struct pyconv *conv)
PyObject *obj;
obj = PyDict_GetItemString(dict, conv[i].name);
+
+ if (!obj)
+ return False;
switch (conv[i].type) {
case PY_UNISTR: {
@@ -123,4 +126,6 @@ void to_struct(void *s, PyObject *dict, struct pyconv *conv)
break;
}
}
+
+ return True;
}
diff --git a/source3/python/py_conv.h b/source3/python/py_conv.h
index 0de2d674de..ed06b9a852 100644
--- a/source3/python/py_conv.h
+++ b/source3/python/py_conv.h
@@ -30,7 +30,7 @@ struct pyconv {
};
PyObject *from_struct(void *s, struct pyconv *conv);
-void to_struct(void *s, PyObject *dict, struct pyconv *conv);
+BOOL to_struct(void *s, PyObject *dict, struct pyconv *conv);
/* Another version of offsetof (-: */