From: Stephan Bosch Date: Tue, 13 Jul 2021 02:03:42 +0000 (+0200) Subject: lib-storage: mail-duplicate - Change mail_duplicate_check() return type from bool... X-Git-Tag: 2.3.17~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f786488b2324c117f17d389281be0ff42655d4f9;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mail-duplicate - Change mail_duplicate_check() return type from bool to enum. --- diff --git a/src/lib-storage/mail-duplicate.c b/src/lib-storage/mail-duplicate.c index e51ff4cbfe..2d1a56af1e 100644 --- a/src/lib-storage/mail-duplicate.c +++ b/src/lib-storage/mail-duplicate.c @@ -246,8 +246,9 @@ static void mail_duplicate_file_free(struct mail_duplicate_file **_file) pool_unref(&file->pool); } -bool mail_duplicate_check(struct mail_duplicate_db *db, - const void *id, size_t id_size, const char *user) +enum mail_duplicate_check_result +mail_duplicate_check(struct mail_duplicate_db *db, + const void *id, size_t id_size, const char *user) { struct mail_duplicate d; @@ -263,7 +264,9 @@ bool mail_duplicate_check(struct mail_duplicate_db *db, d.id_size = id_size; d.user = user; - return hash_table_lookup(db->file->hash, &d) != NULL; + return (hash_table_lookup(db->file->hash, &d) != NULL ? + MAIL_DUPLICATE_CHECK_RESULT_EXISTS : + MAIL_DUPLICATE_CHECK_RESULT_NOT_FOUND); } void mail_duplicate_mark(struct mail_duplicate_db *db, diff --git a/src/lib-storage/mail-duplicate.h b/src/lib-storage/mail-duplicate.h index 4aa868edba..7e24e06c3d 100644 --- a/src/lib-storage/mail-duplicate.h +++ b/src/lib-storage/mail-duplicate.h @@ -4,10 +4,18 @@ struct mail_duplicate_db; struct mail_storage_settings; +enum mail_duplicate_check_result { + /* The ID exists. The ID is not locked. */ + MAIL_DUPLICATE_CHECK_RESULT_EXISTS, + /* The ID doesn't exist yet. The ID gets locked. */ + MAIL_DUPLICATE_CHECK_RESULT_NOT_FOUND, +}; + #define MAIL_DUPLICATE_DEFAULT_KEEP (3600 * 24) -bool mail_duplicate_check(struct mail_duplicate_db *db, - const void *id, size_t id_size, const char *user); +enum mail_duplicate_check_result +mail_duplicate_check(struct mail_duplicate_db *db, + const void *id, size_t id_size, const char *user); void mail_duplicate_mark(struct mail_duplicate_db *db, const void *id, size_t id_size, const char *user, time_t timestamp);