Accept GNUTLS priority in configuration file.
[cascardo/rnetproxy.git] / usermap.c
1 /*
2 ** Copyright (C) 2006 Thadeu Lima de Souza Cascardo <cascardo@minaslivre.org>
3 ** Copyright (C) 2009 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
4 **  
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
9 **  
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 ** GNU General Public License for more details.
14 **  
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 **  
19 */
20
21 #include <string.h>
22 #include <gdbm.h>
23 #include "usermap.h"
24
25 int ACCESS_DEFAULT = ACCESS_DENY;
26
27 int
28 usermap_perm (char *user)
29 {
30   GDBM_FILE allow_db = NULL;
31   GDBM_FILE deny_db = NULL;
32   int allow = 0;
33   int deny = 0;
34   datum key;
35   key.dptr = user;
36   key.dsize = strlen (user);
37   allow_db = gdbm_open ("/var/lib/popproxy/allow.db",
38                         0, GDBM_READER, 0, NULL);
39   deny_db = gdbm_open ("/var/lib/popproxy/deny.db",
40                        0, GDBM_READER, 0, NULL);
41   if (allow_db)
42     {
43       allow = gdbm_exists (allow_db, key);
44       gdbm_close (allow_db);
45     }
46   if (deny_db)
47     {
48       deny = gdbm_exists (deny_db, key);
49       gdbm_close (deny_db);
50     }
51   if (deny)
52     return ACCESS_DENY;
53   if (allow)
54     return ACCESS_ALLOW;
55   return ACCESS_DEFAULT;
56 }