summaryrefslogtreecommitdiffstats
path: root/source/scripting
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2004-10-16 00:19:33 +0000
committerTim Potter <tpot@samba.org>2004-10-16 00:19:33 +0000
commite3c0ea2d6320a99cd060c80df471dba1df98f5b2 (patch)
treeb810661fa6fc4bd66037b8a7f7604b540da50c24 /source/scripting
parent144397a61a2dc57ee79871b8c2bd140db8e86310 (diff)
downloadsamba-e3c0ea2d6320a99cd060c80df471dba1df98f5b2.tar.gz
samba-e3c0ea2d6320a99cd060c80df471dba1df98f5b2.tar.xz
samba-e3c0ea2d6320a99cd060c80df471dba1df98f5b2.zip
r3001: Expose unmarshalling functions for structures marked "public" in the
idl. This allows us to pass a buffer of bytes returned from a spoolss call and convert it to a Python dictionary. Works for enumprinters level 1!
Diffstat (limited to 'source/scripting')
-rw-r--r--source/scripting/swig/dcerpc.i6
-rw-r--r--source/scripting/swig/torture/spoolss.py2
2 files changed, 7 insertions, 1 deletions
diff --git a/source/scripting/swig/dcerpc.i b/source/scripting/swig/dcerpc.i
index ab53a1dc51e..1222d54766d 100644
--- a/source/scripting/swig/dcerpc.i
+++ b/source/scripting/swig/dcerpc.i
@@ -346,6 +346,12 @@ NTSTATUS dcerpc_pipe_connect(struct dcerpc_pipe **OUT,
const char *username,
const char *password);
+%typemap(in) DATA_BLOB * (DATA_BLOB temp_data_blob) {
+ temp_data_blob.data = PyString_AsString($input);
+ temp_data_blob.length = PyString_Size($input);
+ $1 = &temp_data_blob;
+}
+
%include "librpc/gen_ndr/misc.i"
%include "librpc/gen_ndr/lsa.i"
%include "librpc/gen_ndr/samr.i"
diff --git a/source/scripting/swig/torture/spoolss.py b/source/scripting/swig/torture/spoolss.py
index 78d573a7cd0..e29178a0b60 100644
--- a/source/scripting/swig/torture/spoolss.py
+++ b/source/scripting/swig/torture/spoolss.py
@@ -11,7 +11,7 @@ def test_EnumPrinters(pipe):
result = dcerpc.spoolss_EnumPrinters(pipe, r)
- print result
+ print dcerpc.unmarshall_spoolss_PrinterInfo1(result['buffer'])
def runtests(binding, domain, username, password):