*/
#include <string.h>
+#include <depot.h>
#include "usermap.h"
int
usermap_perm (char *user)
{
+ static DEPOT* allow_dp = NULL;
+ static DEPOT* deny_dp = NULL;
+ char* allow = NULL;
+ char* deny = NULL;
+ if (allow_dp == NULL)
+ {
+ allow_dp = dpopen ("/var/lib/popproxy/allow.db", DP_OREADER, 0);
+ }
+ if (deny_dp == NULL)
+ {
+ deny_dp = dpopen ("/var/lib/popproxy/allow.db", DP_OREADER, 0);
+ }
+ 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);
+ free (deny);
+ return ACCESS_DENY;
+ }
+ if (allow)
+ {
+ free (allow);
+ return ACCESS_ALLOW;
+ }
+ if (deny)
+ {
+ free (deny);
+ return ACCESS_DENY;
+ }
+ if (!allow_dp)
+ return ACCESS_ALLOW;
return ACCESS_DENY;
}