static void sql_lookup_pass(struct passdb_sql_request *sql_request) { struct passdb_module *_module = sql_request->auth_request->passdb->passdb; struct sql_passdb_module *module = (struct sql_passdb_module *)_module; const char *query, *error; if (t_auth_request_var_expand(module->conn->set.password_query, sql_request->auth_request, passdb_sql_escape, &query, &error) <= 0) { auth_request_log_debug(sql_request->auth_request, AUTH_SUBSYS_DB, "Failed to expand password_query=%s: %s", module->conn->set.password_query, error); sql_request->callback.verify_plain(PASSDB_RESULT_INTERNAL_FAILURE, sql_request->auth_request); return; } auth_request_log_debug(sql_request->auth_request, AUTH_SUBSYS_DB, "query: %s", query); auth_request_ref(sql_request->auth_request); sql_query(module->conn->db, query, sql_query_callback, sql_request); }
static void sql_lookup_pass(struct passdb_sql_request *sql_request) { struct passdb_module *_module = sql_request->auth_request->passdb->passdb; struct sql_passdb_module *module = (struct sql_passdb_module *)_module; const char *query; query = t_auth_request_var_expand(module->conn->set.password_query, sql_request->auth_request, passdb_sql_escape); auth_request_log_debug(sql_request->auth_request, AUTH_SUBSYS_DB, "query: %s", query); auth_request_ref(sql_request->auth_request); sql_query(module->conn->db, query, sql_query_callback, sql_request); }
static enum passdb_result static_save_fields(struct auth_request *request, const char **password_r, const char **scheme_r) { struct static_passdb_module *module = (struct static_passdb_module *)request->passdb->passdb; const char *error; *password_r = NULL; *scheme_r = NULL; auth_request_log_debug(request, AUTH_SUBSYS_DB, "lookup"); if (passdb_template_export(module->tmpl, request, &error) < 0) { auth_request_log_error(request, AUTH_SUBSYS_DB, "Failed to expand template: %s", error); return PASSDB_RESULT_INTERNAL_FAILURE; } if (module->static_password_tmpl != NULL) { if (t_auth_request_var_expand(module->static_password_tmpl, request, NULL, password_r, &error) <= 0) { auth_request_log_error(request, AUTH_SUBSYS_DB, "Failed to expand password=%s: %s", module->static_password_tmpl, error); return PASSDB_RESULT_INTERNAL_FAILURE; } } else if (auth_fields_exists(request->extra_fields, "nopassword")) { *password_r = ""; } else { auth_request_log_info(request, AUTH_SUBSYS_DB, "No password returned (and no nopassword)"); return PASSDB_RESULT_PASSWORD_MISMATCH; } *scheme_r = password_get_scheme(password_r); if (*scheme_r == NULL) *scheme_r = STATIC_PASS_SCHEME; auth_request_set_field(request, "password", *password_r, *scheme_r); return PASSDB_RESULT_OK; }
static enum passdb_result static_save_fields(struct auth_request *request, const char **password_r) { struct static_passdb_module *module = (struct static_passdb_module *)request->passdb->passdb; auth_request_log_debug(request, AUTH_SUBSYS_DB, "lookup"); passdb_template_export(module->tmpl, request); if (module->static_password_tmpl != NULL) { *password_r = t_auth_request_var_expand( module->static_password_tmpl, request, NULL); } else if (auth_fields_exists(request->extra_fields, "nopassword")) { *password_r = ""; } else { auth_request_log_info(request, AUTH_SUBSYS_DB, "No password returned (and no nopassword)"); *password_r = NULL; return PASSDB_RESULT_PASSWORD_MISMATCH; } return PASSDB_RESULT_OK; }