passdb-vpopmail.c revision 4dc1510cd6e8f78cded5cb7a01fc77df1cf29008
bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch/* Copyright (C) 2002-2003 Timo Sirainen */
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch/* Thanks to Courier-IMAP for showing how the vpopmail API should be used */
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Boschvpopmail_verify_plain(struct auth_request *request, const char *password,
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch char vpop_user[VPOPMAIL_LIMIT], vpop_domain[VPOPMAIL_LIMIT];
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch callback(PASSDB_RESULT_USER_UNKNOWN, request);
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch callback(PASSDB_RESULT_USER_DISABLED, request);
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch ret = password_verify(password, crypted_pass, scheme, request->user);
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch safe_memset(vpw->pw_passwd, 0, strlen(vpw->pw_passwd));
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch i_error("vpopmail(%s): Unknown password scheme %s",
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch } else if (verbose) {
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch callback(PASSDB_RESULT_PASSWORD_MISMATCH, request);
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch const char *host = net_ip2addr(&request->remote_ip);
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch /* use putenv() directly rather than env_put() which
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch would leak memory every time we got here. use a
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch static buffer for putenv() as SUSv2 requirements
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Bosch would otherwise corrupt our environment later. */
2cbbe9b4829adb184c83dbf780316f4144559054Stephan Boschstatic void vpopmail_deinit(void)