r2780: Add conversion routines for DATA_BLOB. I'm not convinced that DATA_BLOB's
authorTim Potter <tpot@samba.org>
Sat, 2 Oct 2004 11:22:20 +0000 (11:22 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:59:32 +0000 (12:59 -0500)
should be treated as scalar types though.
(This used to be commit c9e96038f821783c30b5cf509334176f982403d9)

source4/scripting/swig/dcerpc.i

index 6be0b639f0d150da9506e81ce5bd8ee4392cff51..5c3ce0ceec7834ec1645b11880ca7d68586c6b72 100644 (file)
@@ -246,6 +246,35 @@ PyObject *string_ptr_to_python(TALLOC_CTX *mem_ctx, char *obj)
 #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"