diff options
Diffstat (limited to 'modules/mailutils/mailutils.c')
-rw-r--r-- | modules/mailutils/mailutils.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/mailutils/mailutils.c b/modules/mailutils/mailutils.c index 78fed0d..1423227 100644 --- a/modules/mailutils/mailutils.c +++ b/modules/mailutils/mailutils.c @@ -37,6 +37,7 @@ typedef int (*query_fun_t)(smap_database_t dbp, struct smap_conninfo const *conninfo); struct _mu_smap_db { + const char *id; char *positive_reply; char *negative_reply; char *onerror_reply; @@ -46,6 +47,7 @@ struct _mu_smap_db { }; struct _mu_smap_result { + const char *db; const char *map; const char *key; struct mu_auth_data *auth; @@ -76,6 +78,7 @@ expand_reply_text(const char *arg, struct _mu_smap_result *res) if (!arg) return NULL; mu_vartab_create(&vtab); + mu_vartab_define(vtab, "db", res->db, 0); mu_vartab_define(vtab, "key", res->key, 0); mu_vartab_define(vtab, "map", res->map, 0); mu_vartab_define(vtab, MU_AUTH_NAME, auth ? auth->name : "", 0); @@ -128,6 +131,7 @@ _mu_auth_query(smap_database_t dbp, struct _mu_smap_result res; char *reply; + res.db = mdb->id; res.map = map; res.key = key; res.auth = auth; @@ -265,6 +269,7 @@ _mu_mbq_query(smap_database_t dbp, char *reply; memset(&res, 0, sizeof(res)); + res.db = mdb->id; res.map = map; res.key = key; @@ -462,7 +467,7 @@ mod_mailutils_init(int argc, char **argv) } static smap_database_t -mod_mailutils_init_db(int argc, char **argv) +mod_mailutils_init_db(const char *dbid, int argc, char **argv) { struct _mu_smap_db *db; char *positive_reply = NULL; @@ -502,6 +507,7 @@ mod_mailutils_init_db(int argc, char **argv) mu_error("not enough memory"); return NULL; } + db->id = dbid; db->positive_reply = positive_reply ? positive_reply : strdup(dfl_positive_reply); db->negative_reply = negative_reply ? |