svn commit: samba r2780 - in branches/SAMBA_4_0/source/scripting/swig: .

tpot at samba.org tpot at samba.org
Sat Oct 2 11:22:21 GMT 2004


Author: tpot
Date: 2004-10-02 11:22:20 +0000 (Sat, 02 Oct 2004)
New Revision: 2780

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/scripting/swig&rev=2780&nolog=1

Log:
Add conversion routines for DATA_BLOB.  I'm not convinced that DATA_BLOB's
should be treated as scalar types though.

Modified:
   branches/SAMBA_4_0/source/scripting/swig/dcerpc.i


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2004-10-02 11:11:49 UTC (rev 2779)
+++ branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2004-10-02 11:22:20 UTC (rev 2780)
@@ -246,6 +246,35 @@
 #define dom_sid2_ptr_to_python dom_sid_ptr_to_python
 #define dom_sid2_ptr_from_python dom_sid_ptr_from_python
 
+DATA_BLOB DATA_BLOB_from_python(PyObject *obj, char *name)
+{
+	DATA_BLOB ret;
+
+	/* Because we treat DATA_BLOB as a scalar type (why?) there 
+	   doesn't seem to be a way to pass back when an error has
+	   occured. */
+
+	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;
+	}
+
+	ret.length = PyString_Size(obj);
+	ret.data = PyString_AsString(obj);
+
+	return ret;
+}
+
+PyObject *DATA_BLOB_to_python(DATA_BLOB obj)
+{
+	return PyString_FromStringAndSize(obj.data, obj.length);
+}
+
 %}
 
 %include "samba.i"



More information about the samba-cvs mailing list