X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=usermap.c;h=e2fa5bdcecb9ff421cc9881d1cc29351ee757adb;hb=9e01543ef65baeb4e1d477b61391aaef051141e1;hp=64c13d07871700a223cc2204650806e5bec61dbe;hpb=afb22f584389e92b343dff248ea94ba436d7ca0f;p=cascardo%2Frnetproxy.git diff --git a/usermap.c b/usermap.c index 64c13d0..e2fa5bd 100644 --- a/usermap.c +++ b/usermap.c @@ -25,22 +25,24 @@ 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; - 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); @@ -57,7 +59,7 @@ usermap_perm (char *user) free (deny); return ACCESS_DENY; } - if (!allow_dp) + if (allow_users == 0) return ACCESS_ALLOW; return ACCESS_DENY; }