userdb-sql.c revision 08d6658a4e2ec8104cd1307f6baa75fdb07a24f8
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen/* Copyright (c) 2004-2009 Dovecot authors, see the included COPYING file */
a91bd6256b33729531c33ff8bc66ee1ae95840f9Timo Sirainensql_query_get_result(struct sql_result *result,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen unsigned int i, fields_count;
c0a87e5f3316a57e6f915882fa1951d0fbb74a61Timo Sirainen fields_count = sql_result_get_fields_count(result);
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen for (i = 0; i < fields_count; i++) {
533bfba437e4120aa29dd45bca2aa87e30ee28a2Timo Sirainen value = sql_result_get_field_value(result, i);
c0a87e5f3316a57e6f915882fa1951d0fbb74a61Timo Sirainenstatic void sql_query_callback(struct sql_result *sql_result,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen struct auth_request *auth_request = sql_request->auth_request;
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen enum userdb_result result = USERDB_RESULT_INTERNAL_FAILURE;
d92f33f13830ba23d814342bf3ea8db721a15bb1Timo Sirainen "User query failed: %s",
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen } else if (ret == 0) {
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen auth_request_log_info(auth_request, "sql", "Unknown user");
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sql_query_get_result(sql_result, auth_request);
b039dabf4c53f72454e795930e7643b6e0e625f9Timo Sirainenstatic const char *
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenuserdb_sql_escape(const char *str, const struct auth_request *auth_request)
3c493c276f599d9b9cd10764876d648003046954Timo Sirainen struct userdb_module *_module = auth_request->userdb->userdb;
91b203fd2132510a47a4b34252c0ae0efd688a19Timo Sirainen return sql_escape_string(module->conn->db, str);
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenstatic void userdb_sql_lookup(struct auth_request *auth_request,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen struct userdb_module *_module = auth_request->userdb->userdb;
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen var_expand(query, module->conn->set.user_query,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen auth_request_get_var_expand_table(auth_request,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sql_request = i_new(struct userdb_sql_request, 1);
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen auth_request_log_debug(auth_request, "sql", "%s", str_c(query));
106b804c819443791f1324f8bbe34429eeea6a13Timo Sirainenuserdb_sql_preinit(struct auth_userdb *auth_userdb, const char *args)
5694eeb99b69dea8033ca77ad69743c6b4871370Timo Sirainen module = p_new(auth_userdb->auth->pool, struct sql_userdb_module, 1);
4d84348ffcbb60de566108562c95ad64629e7a53Timo Sirainenstatic void userdb_sql_init(struct userdb_module *_module,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen _module->blocking = (flags & SQL_DB_FLAG_BLOCKING) != 0;
4366a21968093172d9b757fe6894b1ee8916434eTimo Sirainenstatic void userdb_sql_deinit(struct userdb_module *_module)