diff options
Diffstat (limited to 'source3/python/py_conv.c')
-rw-r--r-- | source3/python/py_conv.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/source3/python/py_conv.c b/source3/python/py_conv.c index e865daf7d9..d0a2d78aab 100644 --- a/source3/python/py_conv.c +++ b/source3/python/py_conv.c @@ -18,8 +18,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "includes.h" -#include "Python.h" #include "py_conv.h" /* Helper for rpcstr_pull() function */ @@ -29,6 +27,11 @@ static void fstr_pull(fstring str, UNISTR *uni) rpcstr_pull(str, uni->buffer, sizeof(fstring), -1, STR_TERMINATE); } +static void fstr_pull2(fstring str, UNISTR2 *uni) +{ + rpcstr_pull(str, uni->buffer, sizeof(fstring), -1, STR_TERMINATE); +} + /* Convert a structure to a Python dict */ PyObject *from_struct(void *s, struct pyconv *conv) @@ -52,6 +55,18 @@ PyObject *from_struct(void *s, struct pyconv *conv) break; } + case PY_UNISTR2: { + UNISTR2 *u = (UNISTR2 *)((char *)s + conv[i].offset); + fstring str = ""; + + if (u->buffer) + fstr_pull2(str, u); + + item = PyString_FromString(str); + PyDict_SetItemString(obj, conv[i].name, item); + + break; + } case PY_UINT32: { uint32 *u = (uint32 *)((char *)s + conv[i].offset); |