mech-login.c revision 4ac5448461b63de9637de839fbc611a3d503287c
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * LOGIN authentication mechanism.
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * Copyright (c) 2004 Andrey Panin <pazke@donpac.ru>
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * This program is free software; you can redistribute it and/or modify
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * it under the terms of the GNU Lesser General Public License as published
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * by the Free Software Foundation; either version 2 of the License, or
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen * (at your option) any later version.
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainenstatic void verify_callback(enum passdb_result result,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenmech_login_auth_continue(struct auth_request *request,
97c339398f1aba6f315b55a9b6ee6b020e33bea4Timo Sirainen if (!auth_request_set_username(request, username, &error)) {
49e513d090753ccbf95560b2f3a21f081a5b6c51Timo Sirainen auth_request_log_info(request, "login", "%s", error);
78ed6a99e980228a75fa59cff84327dc0ea82857Timo Sirainen request->callback(request, AUTH_CLIENT_RESULT_CONTINUE,
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen char *pass = p_strndup(unsafe_data_stack_pool, data, data_size);
1e21e6be70994b1aa9e52ca0e2f51afefca6d0dfTimo Sirainen auth_request_verify_plain(request, pass, verify_callback);
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenmech_login_auth_initial(struct auth_request *request,
78ed6a99e980228a75fa59cff84327dc0ea82857Timo Sirainen request->callback(request, AUTH_CLIENT_RESULT_CONTINUE,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenstatic void mech_login_auth_free(struct auth_request *request)
4ac5448461b63de9637de839fbc611a3d503287cTimo Sirainenstatic struct auth_request *mech_login_auth_new(void)
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen pool = pool_alloconly_create("login_auth_request", 256);