*/
#include <string.h>
+#include <depot.h>
#include "usermap.h"
int
usermap_perm (char *user)
{
+ DEPOT* allow_dp = NULL;
+ DEPOT* deny_dp = NULL;
+ char* allow = NULL;
+ char* deny = 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 = dpget (allow_dp, user, -1, 0, -1, NULL);
+ allow_users = dprnum (allow_dp);
+ dpclose (allow_dp);
+ }
+ if (deny_dp)
+ {
+ deny = dpget (deny_dp, user, -1, 0, -1, NULL);
+ dpclose (deny_dp);
+ }
+ if (allow && deny)
+ {
+ free (allow);
+ free (deny);
+ return ACCESS_DENY;
+ }
+ if (allow)
+ {
+ free (allow);
+ return ACCESS_ALLOW;
+ }
+ if (deny)
+ {
+ free (deny);
+ return ACCESS_DENY;
+ }
+ if (allow_users == 0)
+ return ACCESS_ALLOW;
return ACCESS_DENY;
}