51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen#ifndef CHECKPASSWORD_COMMON_H
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen#define CHECKPASSWORD_COMMON_H
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen#include "auth-request.h"
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainenenum db_checkpassword_status {
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen DB_CHECKPASSWORD_STATUS_INTERNAL_FAILURE = -1,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen /* auth unsuccessful / user not found */
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen DB_CHECKPASSWORD_STATUS_FAILURE = 0,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen DB_CHECKPASSWORD_STATUS_OK = 1
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen};
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainentypedef void db_checkpassword_callback_t(struct auth_request *request,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen enum db_checkpassword_status status,
1294c06fcf841b62b0e40de3388354107c7fc012Timo Sirainen const char *const *extra_fields,
5e114f59ad9b9632bf7f3403d56bea17bd494e8eTimo Sirainen void (*request_callback)());
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainenstruct db_checkpassword *
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainendb_checkpassword_init(const char *checkpassword_path,
51821162b1df9a8a9398b8b64ceca410b9cc3092Timo Sirainen const char *checkpassword_reply_path);
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainenvoid db_checkpassword_deinit(struct db_checkpassword **db);
51821162b1df9a8a9398b8b64ceca410b9cc3092Timo Sirainen
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainenvoid db_checkpassword_call(struct db_checkpassword *db,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen struct auth_request *request,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen const char *auth_password,
b3c3d6f46f165cee9f9e80145b9ab5f636a81ba7Timo Sirainen db_checkpassword_callback_t *callback,
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4Timo Sirainen void (*request_callback)()) ATTR_NULL(3);
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen
51ead2f4c04ee85615d23c453924633b9ed8a4c2Timo Sirainen#endif