passdb-passwd.c revision dd93aba1901a457346990f49c54a738947dc7128
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn/* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallynpasswd_verify_plain(struct auth_request *request, const char *password,
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn auth_request_log_debug(request, "passwd", "lookup");
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn auth_request_log_info(request, "passwd", "unknown user");
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn callback(PASSDB_RESULT_USER_DISABLED, request);
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn /* save the password so cache can use it */
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn auth_request_set_field(request, "password", pw->pw_passwd,
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn /* check if the password is valid */
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn ret = auth_request_password_verify(request, password, pw->pw_passwd,
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn /* clear the passwords from memory */
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn safe_memset(pw->pw_passwd, 0, strlen(pw->pw_passwd));
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn callback(PASSDB_RESULT_PASSWORD_MISMATCH, request);
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallyn /* make sure we're using the username exactly as it's in the database */
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallyn auth_request_set_field(request, "user", pw->pw_name, NULL);
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallynstatic void passwd_init(struct passdb_module *module, const char *args)
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallyn i_fatal("passdb passwd: Unknown setting: %s", args);
11cddd70eb8c285287b73562ba4208d74e1b9fdeSerge Hallyn module->default_pass_scheme = PASSWD_PASS_SCHEME;
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallynstatic void passwd_deinit(struct passdb_module *module ATTR_UNUSED)
585f3c6b6942e82a25af1d68672fd4744ecfa09dKATOH Yasufumistruct passdb_module_interface passdb_passwd = {