]> git.sesse.net Git - itkacl/blobdiff - python-itkacl-2.0/itkacl.i
Add a Python module.
[itkacl] / python-itkacl-2.0 / itkacl.i
diff --git a/python-itkacl-2.0/itkacl.i b/python-itkacl-2.0/itkacl.i
new file mode 100644 (file)
index 0000000..8c5c63b
--- /dev/null
@@ -0,0 +1,25 @@
+/* SWIG interface for libitkacl */
+%module itkacl
+
+/* Same as for Perl, except that we return a boolean, not an int. */
+%inline %{
+       extern int itkacl_check(char *realm, char *user, char *errmsg, size_t errmsgsize);
+       PyObject *check(char *realm, char *user)
+       {
+               char errmsg[1024];
+               int ret = itkacl_check(realm, user, errmsg, 1024);
+               if (ret == -1) {
+                       PyErr_SetString(PyExc_RuntimeError, errmsg);
+                       return NULL;
+               } else {
+                       if (ret == 0) {
+                               Py_INCREF(Py_True);
+                               return Py_True;
+                       } else {
+                               Py_INCREF(Py_False);
+                               return Py_False;
+                       }
+               }
+       }
+%}
+