]> git.sesse.net Git - itkacl/blobdiff - perl-itkacl-2.0/itkacl.i
Add Perl module.
[itkacl] / perl-itkacl-2.0 / itkacl.i
diff --git a/perl-itkacl-2.0/itkacl.i b/perl-itkacl-2.0/itkacl.i
new file mode 100644 (file)
index 0000000..f58703c
--- /dev/null
@@ -0,0 +1,20 @@
+/* SWIG interface for libitkacl */
+%module itkacl
+
+/* Convert errors to Perl exceptions and keep the interface clean. */
+%inline %{
+       extern int itkacl_check(char *realm, char *user, char *errmsg, size_t errmsgsize);
+       int check(char *realm, char *user)
+       {
+               char errmsg[1024];
+               int ret = itkacl_check(realm, user, errmsg, 1024);
+
+               /* printf("check '%s' vs. '%s' gave %d\n", user, realm, ret); */
+               if (ret == -1)
+                       die(errmsg);
+               else
+                       return (ret == 0);
+       }
+       
+%}
+