38 static bool rdonly =
TRUE;
56 memset(dbpath, 0,
sizeof (dbpath));
59 if (cfdir == NULL || strlen(cfdir) == 0)
72 zeDb_Open(&hdb, NULL, dbpath, (rdonly ? 0444 : 0644), rdonly,
TRUE, 0);
91 res =
zeDb_Open(&hdb, NULL, path, (rdonly ? 0444 : 0644), rdonly,
TRUE, 0);
151 bool is_email =
FALSE;
162 if (strlen(key) == 0)
170 if ((domain =
strchr(key,
'@')) != NULL) {
172 if ((email = strdup(key)) != NULL)
184 if (is_email && email != NULL && strlen(email) > 0) {
188 snprintf(k,
sizeof (k),
"%s:%s", prefix, email);
192 if ((bufout != NULL) && (size > 0))
203 if (!is_email && strlen(domain) > 0) {
207 snprintf(k,
sizeof (k),
"%s:%s", prefix, domain);
211 if ((bufout != NULL) && (size > 0))
225 if (
FALSE && !found) {
233 while (p != NULL && strlen(p) > 0) {
234 snprintf(k,
sizeof (k),
"%s:%s", prefix, p);
238 if ((bufout != NULL) && (size > 0))
269 if (!found && is_email && email != NULL) {
270 snprintf(k,
sizeof (k),
"%s:%s", prefix, email);
277 if ((bufout != NULL) && (size > 0))
321 if (strlen(key) == 0)
329 if ((domain =
strchr(key,
'@')) != NULL)
333 if (domain == NULL || strlen(domain) == 0)
337 if (p != NULL && strlen(p) > 0) {
338 snprintf(k,
sizeof (k),
"%s:%s", prefix, p);
343 if ((bufout != NULL) && (size > 0))
352 while (p != NULL && strlen(p) > 0) {
353 snprintf(k,
sizeof (k),
"%s:*.%s", prefix, p);
358 if ((bufout != NULL) && (size > 0))
373 snprintf(k,
sizeof (k),
"%s:%s", prefix,
"default");
378 if ((bufout != NULL) && (size > 0))
bool zeDb_Unlock(ZEDB_T *h)
Database unlock.
#define ZE_LogMsgError(level,...)
#define ADJUST_FILENAME(path, fname, cfdir, defval)
char * extract_email_address(char *, char *, size_t)
bool zeDb_Open(ZEDB_T *h, ZEDB_ENV_T *, char *, int, bool, bool, size_t)
bool zeDb_Close(ZEDB_T *h)
#define ZE_MessageInfo(level,...)
bool zeDb_GetRec(ZEDB_T *h, char *, void *, size_t)
bool db_rcpt_check_domain(char *prefix, char *key, char *bufout, size_t size, uint32_t flags)
#define ZE_LogSysError(...)
char * cf_get_str(int id)
bool db_rcpt_open(bool rd)
char * zeStr2Lower(char *)
bool db_rcpt_check_email(char *prefix, char *key, char *bufout, size_t size)
bool zeDb_Lock(ZEDB_T *h)
Database lock.