1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

r2966: Handle conversion of DATA_BLOB fields from Python in a slightly nicer

manner.  I'm hoping to get rid of DATA_BLOB's but for the moment they
make it easy to get some spoolss action happening quickly.
(This used to be commit 15f8f73f8bfec099973fb8bf167020ae50346cf6)
This commit is contained in:
Tim Potter 2004-10-14 07:33:09 +00:00 committed by Gerald (Jerry) Carter
parent e3627c2c6e
commit 1c4b87c788
2 changed files with 15 additions and 10 deletions

View File

@ -96,6 +96,11 @@ sub FieldFromPython($$)
return $result;
}
if ($e->{TYPE} eq "DATA_BLOB") {
$result .= "\tDATA_BLOB_ptr_from_python(mem_ctx, &s->$prefix$e->{NAME}, $obj, \"$e->{NAME}\");\n";
return $result;
}
# Generate conversion for element
if (util::is_scalar_type($e->{TYPE})) {

View File

@ -254,28 +254,28 @@ 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)
void DATA_BLOB_ptr_from_python(TALLOC_CTX *mem_ctx, DATA_BLOB **s,
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 (obj == Py_None) {
*s = NULL;
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);
*s = talloc(mem_ctx, sizeof(DATA_BLOB));
return ret;
(*s)->length = PyString_Size(obj);
(*s)->data = PyString_AsString(obj);
}
PyObject *DATA_BLOB_to_python(DATA_BLOB obj)