summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2004-09-22 03:42:58 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:58:57 -0500
commit99721cc7c827457814f97c401462243c3584f480 (patch)
tree7120d82d892280e39dc44bc625bf9f9aba46fd19
parentcde8c60e883ae8a4a163e371c1e7f9b0d465e741 (diff)
downloadsamba-99721cc7c827457814f97c401462243c3584f480.tar.gz
samba-99721cc7c827457814f97c401462243c3584f480.tar.bz2
samba-99721cc7c827457814f97c401462243c3584f480.zip
r2490: Some changes to take into account non-error NTSTATUS codes being returned:
- Only throw an exception if NT_STATUS_IS_ERR() instead of !NT_STATUS_IS_OK(). - Add the NTSTATUS value to the returned dictionary under a key of 'result' so calling functions can access it. (This used to be commit 4ddcae90a2e9b93e58bd57932cd9ae4c95be6ae8)
-rw-r--r--source4/build/pidl/swig.pm8
-rw-r--r--source4/scripting/swig/dcerpc.i2
2 files changed, 7 insertions, 3 deletions
diff --git a/source4/build/pidl/swig.pm b/source4/build/pidl/swig.pm
index 6442aff005..66cb72dd73 100644
--- a/source4/build/pidl/swig.pm
+++ b/source4/build/pidl/swig.pm
@@ -337,10 +337,10 @@ sub ParseFunction($)
# Output typemap
- $result .= "%typemap(argout) struct $fn->{NAME} * {\n";
+ $result .= "%typemap(argout) struct $fn->{NAME} * (PyObject *temp) {\n";
$result .= "\tTALLOC_CTX *mem_ctx = talloc_init(\"typemap(argout) $fn->{NAME}\");\n\n";
- $result .= "\tresultobj = $fn->{NAME}_ptr_to_python(mem_ctx, \$1";
+ $result .= "\ttemp = $fn->{NAME}_ptr_to_python(mem_ctx, \$1";
foreach my $e (@{$fn->{DATA}}) {
if ((my $switch_is = util::has_property($e, "switch_is"))) {
@@ -349,6 +349,10 @@ sub ParseFunction($)
}
$result .= ");\n\n";
+
+ $result .= "\tPyDict_SetItemString(temp, \"result\", resultobj);\n";
+ $result .= "\tresultobj = temp;\n";
+
$result .= "\ttalloc_free(mem_ctx);\n";
$result .= "}\n\n";
diff --git a/source4/scripting/swig/dcerpc.i b/source4/scripting/swig/dcerpc.i
index 08b47d6329..125b32df78 100644
--- a/source4/scripting/swig/dcerpc.i
+++ b/source4/scripting/swig/dcerpc.i
@@ -289,7 +289,7 @@ NTSTATUS dcerpc_pipe_connect(struct dcerpc_pipe **OUT,
%exception {
$action
- if (!NT_STATUS_IS_OK(result)) {
+ if (NT_STATUS_IS_ERR(result)) {
set_ntstatus_exception(NT_STATUS_V(result));
return NULL;
}