diff options
author | Tim Potter <tpot@samba.org> | 2002-10-21 04:21:05 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-10-21 04:21:05 +0000 |
commit | d4410a57583d1ee4559dc72e0845f9631e5c3f9b (patch) | |
tree | 81ba9381490a2e53f3e32426de0d83b6f7a1621d /source3/python/py_spoolss_drivers_conv.c | |
parent | 346c9845a8892c336ae39e5efe7a8ef7e2a2afd1 (diff) | |
download | samba-d4410a57583d1ee4559dc72e0845f9631e5c3f9b.tar.gz |
Merge of validiation cleanups from head.
(This used to be commit 174c8ca814cbb63425207d51f21cf5f80932f743)
Diffstat (limited to 'source3/python/py_spoolss_drivers_conv.c')
-rw-r--r-- | source3/python/py_spoolss_drivers_conv.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/source3/python/py_spoolss_drivers_conv.c b/source3/python/py_spoolss_drivers_conv.c index 41ff38327e2..fd47c0e84da 100644 --- a/source3/python/py_spoolss_drivers_conv.c +++ b/source3/python/py_spoolss_drivers_conv.c @@ -102,10 +102,16 @@ static PyObject *from_dependentfiles(uint16 *dependentfiles) return list; } +static uint16 *to_dependentfiles(PyObject *dict) +{ + return (uint16 *)"abcd\0"; +} + BOOL py_from_DRIVER_INFO_1(PyObject **dict, DRIVER_INFO_1 *info) { *dict = from_struct(info, py_DRIVER_INFO_1); PyDict_SetItemString(*dict, "level", PyInt_FromLong(1)); + return True; } @@ -118,6 +124,7 @@ BOOL py_from_DRIVER_INFO_2(PyObject **dict, DRIVER_INFO_2 *info) { *dict = from_struct(info, py_DRIVER_INFO_2); PyDict_SetItemString(*dict, "level", PyInt_FromLong(2)); + return True; } @@ -129,7 +136,9 @@ BOOL py_to_DRIVER_INFO_2(DRIVER_INFO_2 *info, PyObject *dict) BOOL py_from_DRIVER_INFO_3(PyObject **dict, DRIVER_INFO_3 *info) { *dict = from_struct(info, py_DRIVER_INFO_3); + PyDict_SetItemString(*dict, "level", PyInt_FromLong(3)); + PyDict_SetItemString( *dict, "dependent_files", from_dependentfiles(info->dependentfiles)); @@ -139,12 +148,29 @@ BOOL py_from_DRIVER_INFO_3(PyObject **dict, DRIVER_INFO_3 *info) BOOL py_to_DRIVER_INFO_3(DRIVER_INFO_3 *info, PyObject *dict) { - PyObject *dict_copy = PyDict_Copy(dict); - BOOL result; + PyObject *obj, *dict_copy = PyDict_Copy(dict); + BOOL result = False; + + if (!(obj = PyDict_GetItemString(dict_copy, "dependent_files")) || + !PyList_Check(obj)) + goto done; + + info->dependentfiles = to_dependentfiles(obj); + + PyDict_DelItemString(dict_copy, "dependent_files"); + + if (!(obj = PyDict_GetItemString(dict_copy, "level")) || + !PyInt_Check(obj)) + goto done; PyDict_DelItemString(dict_copy, "level"); - result = to_struct(info, dict_copy, py_DRIVER_INFO_3); + if (!to_struct(info, dict_copy, py_DRIVER_INFO_3)) + goto done; + + result = True; + +done: Py_DECREF(dict_copy); return result; } |