mech-login.c revision e80203675151ef9d4f3f850cf02041042eb13096
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,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen request->user = p_strndup(request->pool, data, data_size);
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen if (!mech_fix_username(request->user, &error)) {
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen callback(request, AUTH_CLIENT_RESULT_CONTINUE,
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen char *pass = p_strndup(unsafe_data_stack_pool, data, data_size);
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen passdb->verify_plain(request, pass, verify_callback);
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenmech_login_auth_initial(struct auth_request *request,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen callback(request, AUTH_CLIENT_RESULT_CONTINUE,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenstatic void mech_login_auth_free(struct auth_request *request)
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainenstatic struct auth_request *mech_login_auth_new(void)
33c6d5807b449463e9b81db5ec99fe027cc1b984Timo Sirainen pool = pool_alloconly_create("login_auth_request", 256);