e_error(authdb_event(auth_request),
"Failed to expand base=%s: %s", conn->set.base, error);
ctx->ctx.failed = TRUE;
+ return &ctx->ctx;
}
request->request.base = p_strdup(auth_request->pool, str_c(str));
"Failed to expand iterate_filter=%s: %s",
conn->set.iterate_filter, error);
ctx->ctx.failed = TRUE;
+ return &ctx->ctx;
}
request->request.filter = p_strdup(auth_request->pool, str_c(str));
request->request.attr_map = &conn->iterate_attr_map;
struct ldap_userdb_iterate_context *ctx =
(struct ldap_userdb_iterate_context *)_ctx;
+ if (_ctx->failed) {
+ _ctx->callback(NULL, _ctx->context);
+ return;
+ }
ctx->continued = TRUE;
if (!ctx->in_callback)
db_ldap_enable_input(ctx->conn, TRUE);
struct sql_userdb_iterate_context *ctx;
const char *query, *error;
+ ctx = i_new(struct sql_userdb_iterate_context, 1);
+ ctx->ctx.auth_request = auth_request;
+ ctx->ctx.callback = callback;
+ ctx->ctx.context = context;
+ auth_request_ref(auth_request);
+
if (t_auth_request_var_expand(module->conn->set.iterate_query,
auth_request, userdb_sql_escape,
&query, &error) <= 0) {
e_error(authdb_event(auth_request),
"Failed to expand iterate_query=%s: %s",
module->conn->set.iterate_query, error);
+ ctx->ctx.failed = TRUE;
+ return &ctx->ctx;
}
- ctx = i_new(struct sql_userdb_iterate_context, 1);
- ctx->ctx.auth_request = auth_request;
- ctx->ctx.callback = callback;
- ctx->ctx.context = context;
- auth_request_ref(auth_request);
-
sql_query(module->conn->db, query,
sql_iter_query_callback, ctx);
e_debug(authdb_event(auth_request), "%s", query);
const char *user;
int ret;
+ if (_ctx->failed) {
+ _ctx->callback(NULL, _ctx->context);
+ return;
+ }
if (ctx->result == NULL) {
/* query not finished yet */
ctx->call_iter = TRUE;