]> git.sesse.net Git - itkacl/blob - perl-itkacl-2.2/itkacl.i
Release a new version of the Apache module, with the context support.
[itkacl] / perl-itkacl-2.2 / itkacl.i
1 /* SWIG interface for libitkacl */
2 %module itkacl
3
4 %perlcode %{
5 _itkacl_init();
6 END {
7         _itkacl_deinit();
8 }
9
10 %}
11
12 /* Convert errors to Perl exceptions and keep the interface clean. */
13 %inline %{
14         #include "itkacl.h"
15
16         struct itkacl_ctx *_ctx = NULL;
17
18         void _itkacl_init()
19         {
20                 char errmsg[1024];
21                 _ctx = itkacl_create_ctx(errmsg, sizeof(errmsg));
22                 if (_ctx == NULL)
23                         die(errmsg);
24         }
25
26         void _itkacl_deinit()
27         {
28                 itkacl_free_ctx(_ctx);
29         }
30
31         int check(char *realm, char *user)
32         {
33                 char errmsg[1024];
34                 int ret = itkacl_check_with_ctx(_ctx, realm, user, errmsg, 1024);
35
36                 /* printf("check '%s' vs. '%s' gave %d\n", user, realm, ret); */
37                 if (ret == -1)
38                         die(errmsg);
39                 else
40                         return (ret == 0);
41         }
42         
43 %}
44