}
static void
-cmd_lookup_callback(const struct dict_lookup_result *result, void *context)
+cmd_lookup_callback(const struct dict_lookup_result *result,
+ struct dict_connection_cmd *cmd)
{
- struct dict_connection_cmd *cmd = context;
string_t *str = t_str_new(128);
event_set_name(cmd->event, "dict_server_lookup_finished");
};
static void dict_lookup_callback(const struct dict_lookup_result *result,
- void *context)
+ struct doveadm_dict_ctx *ctx)
{
- struct doveadm_dict_ctx *ctx = context;
-
ctx->ret = result->ret;
ctx->values = result->values == NULL ? NULL :
p_strarray_dup(ctx->pool, result->values);
};
static void client_dict_lookup_callback(const struct dict_lookup_result *result,
- void *context)
+ struct client_dict_sync_lookup *lookup)
{
- struct client_dict_sync_lookup *lookup = context;
-
lookup->ret = result->ret;
if (result->ret == -1)
lookup->error = i_strdup(result->error);
return ret;
}
+#undef dict_lookup_async
void dict_lookup_async(struct dict *dict, const char *key,
dict_lookup_callback_t *callback, void *context)
{
const char *key, const char **value_r, const char **error_r);
void dict_lookup_async(struct dict *dict, const char *key,
dict_lookup_callback_t *callback, void *context);
+#define dict_lookup_async(dict, key, callback, context) \
+ dict_lookup_async(dict, key, (dict_lookup_callback_t *)(callback), \
+ 1 ? (context) : \
+ CALLBACK_TYPECHECK(callback, \
+ void (*)(const struct dict_lookup_result *, typeof(context))))
/* Iterate through all values in a path. flag indicates how iteration
is carried out */