summaryrefslogtreecommitdiff
path: root/source4/libcli/security
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-21 05:35:39 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-12-21 05:35:39 +0100
commitf36ff0bac29a0e26db8ac0994d046611e3704dd0 (patch)
tree707852feec289807d4997bc725ae0fd6959db2b5 /source4/libcli/security
parent263c6670fcae62c67a5284a385c674b94ef2112c (diff)
downloadsamba-f36ff0bac29a0e26db8ac0994d046611e3704dd0.tar.gz
samba-f36ff0bac29a0e26db8ac0994d046611e3704dd0.tar.bz2
samba-f36ff0bac29a0e26db8ac0994d046611e3704dd0.zip
Include errors.i verbatim in security.i, as it's the only file still using it.
Diffstat (limited to 'source4/libcli/security')
-rw-r--r--source4/libcli/security/security.i34
1 files changed, 33 insertions, 1 deletions
diff --git a/source4/libcli/security/security.i b/source4/libcli/security/security.i
index 420439d147..80efdc8682 100644
--- a/source4/libcli/security/security.i
+++ b/source4/libcli/security/security.i
@@ -28,7 +28,39 @@ typedef struct security_descriptor security_descriptor;
%}
%import "../lib/talloc/talloc.i"
-%include "../util/errors.i"
+%{
+#include "libcli/util/pyerrors.h"
+%}
+
+%typemap(out,noblock=1) WERROR {
+ if (!W_ERROR_IS_OK($1)) {
+ PyErr_SetWERROR($1);
+ SWIG_fail;
+ } else if ($result == NULL) {
+ $result = Py_None;
+ }
+};
+
+%typemap(out,noblock=1) NTSTATUS {
+ if (NT_STATUS_IS_ERR($1)) {
+ PyErr_SetNTSTATUS($1);
+ SWIG_fail;
+ } else if ($result == NULL) {
+ $result = Py_None;
+ }
+};
+
+%typemap(in,noblock=1) NTSTATUS {
+ if (PyLong_Check($input))
+ $1 = NT_STATUS(PyLong_AsUnsignedLong($input));
+ else if (PyInt_Check($input))
+ $1 = NT_STATUS(PyInt_AsLong($input));
+ else {
+ PyErr_SetString(PyExc_TypeError, "Expected a long or an int");
+ return NULL;
+ }
+}
+
%import "stdint.i"
enum sec_privilege {