svn commit: samba r3410 - in branches/SAMBA_4_0/source: build/pidl
scripting/swig scripting/swig/torture
tpot at samba.org
tpot at samba.org
Sun Oct 31 11:33:40 GMT 2004
Author: tpot
Date: 2004-10-31 11:33:40 +0000 (Sun, 31 Oct 2004)
New Revision: 3410
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3410
Log:
Handle conversion of DATA_BLOBs and pointers to DATA_BLOBs from python.
Modified:
branches/SAMBA_4_0/source/build/pidl/swig.pm
branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py
Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/swig.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/swig.pm 2004-10-31 11:33:30 UTC (rev 3409)
+++ branches/SAMBA_4_0/source/build/pidl/swig.pm 2004-10-31 11:33:40 UTC (rev 3410)
@@ -97,7 +97,11 @@
}
if ($e->{TYPE} eq "DATA_BLOB") {
- $result .= "\tDATA_BLOB_ptr_from_python(mem_ctx, &s->$prefix$e->{NAME}, $obj, \"$e->{NAME}\");\n";
+ if ($e->{POINTERS} == 0) {
+ $result .= "\tDATA_BLOB_from_python(mem_ctx, &s->$prefix$e->{NAME}, $obj, \"$e->{NAME}\");\n";
+ } else {
+ $result .= "\tDATA_BLOB_ptr_from_python(mem_ctx, &s->$prefix$e->{NAME}, $obj, \"$e->{NAME}\");\n";
+ }
return $result;
}
Modified: branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/dcerpc.i 2004-10-31 11:33:30 UTC (rev 3409)
+++ branches/SAMBA_4_0/source/scripting/swig/dcerpc.i 2004-10-31 11:33:40 UTC (rev 3410)
@@ -254,6 +254,23 @@
#define dom_sid2_ptr_to_python dom_sid_ptr_to_python
#define dom_sid2_ptr_from_python dom_sid_ptr_from_python
+void DATA_BLOB_from_python(TALLOC_CTX *mem_ctx, DATA_BLOB *s,
+ PyObject *obj, char name)
+{
+ if (obj == NULL) {
+ PyErr_Format(PyExc_ValueError, "Expecting key %s", name);
+ return;
+ }
+
+ if (!PyString_Check(obj)) {
+ PyErr_Format(PyExc_TypeError, "Expecting string value for key '%s'", name);
+ return;
+ }
+
+ s->length = PyString_Size(obj);
+ s->data = PyString_AsString(obj);
+}
+
void DATA_BLOB_ptr_from_python(TALLOC_CTX *mem_ctx, DATA_BLOB **s,
PyObject *obj, char *name)
{
Modified: branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py 2004-10-31 11:33:30 UTC (rev 3409)
+++ branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py 2004-10-31 11:33:40 UTC (rev 3410)
@@ -267,9 +267,33 @@
enum_index += 1
- sys.exit(1)
+def test_SetPrinterData(pipe, handle):
+ print 'testing spoolss_SetPrinterData'
+ valuename = '__printerdatatest__'
+ data = '12345'
+
+ r = {}
+ r['handle'] = handle
+ r['value_name'] = valuename
+ r['type'] = 3 # REG_BINARY
+ r['buffer'] = data
+ r['real_len'] = 5
+
+ dcerpc.spoolss_SetPrinterData(pipe, r)
+
+ s = {}
+ s['handle'] = handle
+ s['value_name'] = valuename
+
+ result = ResizeBufferCall(dcerpc.spoolss_GetPrinterData, pipe, r)
+
+ if result['buffer'] != data:
+ print 'SetPrinterData: mismatch'
+ sys.exit(1)
+
+
def test_EnumPrinters(pipe):
print 'testing spoolss_EnumPrinters'
@@ -321,6 +345,7 @@
test_AddForm(pipe, handle)
test_EnumJobs(pipe, handle)
test_EnumPrinterData(pipe, handle)
+ test_SetPrinterData(pipe, handle)
test_ClosePrinter(pipe, handle)
More information about the samba-cvs
mailing list