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:
parent
e3627c2c6e
commit
1c4b87c788
@ -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})) {
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user