projects
/
cascardo
/
rnetproxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Check for driver methods before calling them and reset them on close.
[cascardo/rnetproxy.git]
/
usermap.c
diff --git
a/usermap.c
b/usermap.c
index
64c13d0
..
e2fa5bd
100644
(file)
--- a/
usermap.c
+++ b/
usermap.c
@@
-25,22
+25,24
@@
int
usermap_perm (char *user)
{
int
usermap_perm (char *user)
{
-
static
DEPOT* allow_dp = NULL;
-
static
DEPOT* deny_dp = NULL;
+ DEPOT* allow_dp = NULL;
+ DEPOT* deny_dp = NULL;
char* allow = NULL;
char* deny = NULL;
char* allow = NULL;
char* deny = NULL;
- if (allow_dp == NULL)
+ int allow_users = 0;
+ allow_dp = dpopen ("/var/lib/popproxy/allow.db", DP_OREADER, 0);
+ deny_dp = dpopen ("/var/lib/popproxy/deny.db", DP_OREADER, 0);
+ if (allow_dp)
{
{
- allow_dp = dpopen ("/var/lib/popproxy/allow.db", DP_OREADER, 0);
+ allow = dpget (allow_dp, user, -1, 0, -1, NULL);
+ allow_users = dprnum (allow_dp);
+ dpclose (allow_dp);
}
}
- if (deny_dp
== NULL
)
+ if (deny_dp)
{
{
- deny_dp = dpopen ("/var/lib/popproxy/allow.db", DP_OREADER, 0);
+ deny = dpget (deny_dp, user, -1, 0, -1, NULL);
+ dpclose (deny_dp);
}
}
- if (allow_dp)
- allow = dpget (allow_dp, user, -1, 0, -1, NULL);
- if (deny_dp)
- deny = dpget (deny_dp, user, -1, 0, -1, NULL);
if (allow && deny)
{
free (allow);
if (allow && deny)
{
free (allow);
@@
-57,7
+59,7
@@
usermap_perm (char *user)
free (deny);
return ACCESS_DENY;
}
free (deny);
return ACCESS_DENY;
}
- if (
!allow_dp
)
+ if (
allow_users == 0
)
return ACCESS_ALLOW;
return ACCESS_DENY;
}
return ACCESS_ALLOW;
return ACCESS_DENY;
}