dovecot-2.0-sslstream: mailbox_search_next*() API changed to ret...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 13 02:56:29 EET 2010
details: http://hg.dovecot.org/dovecot-2.0-sslstream/rev/0156d98bc822
changeset: 10348:0156d98bc822
user: Timo Sirainen <tss at iki.fi>
date: Tue Nov 17 18:34:29 2009 -0500
description:
mailbox_search_next*() API changed to return bool.
If search fails, it'll be noticed anyway by mailbox_search_deinit().
diffstat:
27 files changed, 85 insertions(+), 103 deletions(-)
src/dsync/dsync-worker-local.c | 7 ----
src/imap/cmd-copy.c | 2 -
src/imap/cmd-store.c | 2 -
src/imap/imap-expunge.c | 2 -
src/imap/imap-fetch.c | 5 +--
src/imap/imap-search.c | 2 -
src/lib-storage/index/index-search-result.c | 4 +-
src/lib-storage/index/index-search.c | 13 ++++----
src/lib-storage/index/index-storage.h | 6 +---
src/lib-storage/index/index-thread.c | 4 +-
src/lib-storage/mail-storage-private.h | 4 +-
src/lib-storage/mail-storage.c | 40 ++++++++++++---------------
src/lib-storage/mail-storage.h | 10 +++---
src/lib-storage/test-mailbox.c | 4 +-
src/plugins/convert/convert-storage.c | 2 -
src/plugins/expire/expire-tool.c | 6 ++--
src/plugins/fts-squat/fts-backend-squat.c | 7 ++--
src/plugins/fts/fts-storage.c | 11 ++++---
src/plugins/mbox-snarf/mbox-snarf-plugin.c | 3 +-
src/plugins/quota/quota-count.c | 2 -
src/plugins/quota/quota-storage.c | 2 -
src/plugins/trash/trash-plugin.c | 2 -
src/plugins/virtual/virtual-search.c | 32 ++++++++-------------
src/plugins/virtual/virtual-storage.h | 4 +-
src/plugins/virtual/virtual-sync.c | 2 -
src/pop3/pop3-client.c | 2 -
src/pop3/pop3-commands.c | 8 ++---
diffs (truncated from 644 to 300 lines):
diff -r f8e03cda78d9 -r 0156d98bc822 src/dsync/dsync-worker-local.c
--- a/src/dsync/dsync-worker-local.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/dsync/dsync-worker-local.c Tue Nov 17 18:34:29 2009 -0500
@@ -793,8 +793,7 @@ local_worker_msg_iter_next(struct dsync_
return -1;
prev_uid = iter->mail->uid;
- switch (mailbox_search_next(iter->search_ctx, iter->mail)) {
- case 0:
+ if (!mailbox_search_next(iter->search_ctx, iter->mail)) {
if (iter_local_mailbox_next_expunge(iter, prev_uid, msg_r)) {
*mailbox_idx_r = iter->mailbox_idx;
return 1;
@@ -804,10 +803,6 @@ local_worker_msg_iter_next(struct dsync_
if (iter_local_mailbox_open(iter) < 0)
return -1;
return local_worker_msg_iter_next(_iter, mailbox_idx_r, msg_r);
- case -1:
- return -1;
- default:
- break;
}
*mailbox_idx_r = iter->mailbox_idx;
diff -r f8e03cda78d9 -r 0156d98bc822 src/imap/cmd-copy.c
--- a/src/imap/cmd-copy.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/imap/cmd-copy.c Tue Nov 17 18:34:29 2009 -0500
@@ -52,7 +52,7 @@ static int fetch_and_copy(struct client
mail = mail_alloc(src_trans, MAIL_FETCH_STREAM_HEADER |
MAIL_FETCH_STREAM_BODY, NULL);
ret = 1;
- while (mailbox_search_next(search_ctx, mail) > 0 && ret > 0) {
+ while (mailbox_search_next(search_ctx, mail) && ret > 0) {
if (mail->expunged) {
ret = 0;
break;
diff -r f8e03cda78d9 -r 0156d98bc822 src/imap/cmd-store.c
--- a/src/imap/cmd-store.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/imap/cmd-store.c Tue Nov 17 18:34:29 2009 -0500
@@ -178,7 +178,7 @@ bool cmd_store(struct client_command_con
}
mail = mail_alloc(t, MAIL_FETCH_FLAGS, NULL);
- while (mailbox_search_next(search_ctx, mail) > 0) {
+ while (mailbox_search_next(search_ctx, mail)) {
if (ctx.max_modseq < (uint64_t)-1) {
/* check early so there's less work for transaction
commit if something has to be cancelled */
diff -r f8e03cda78d9 -r 0156d98bc822 src/imap/imap-expunge.c
--- a/src/imap/imap-expunge.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/imap/imap-expunge.c Tue Nov 17 18:34:29 2009 -0500
@@ -31,7 +31,7 @@ int imap_expunge(struct mailbox *box, st
mail_search_args_unref(&search_args);
mail = mail_alloc(t, 0, NULL);
- while (mailbox_search_next(ctx, mail) > 0) {
+ while (mailbox_search_next(ctx, mail)) {
mail_expunge(mail);
expunges = TRUE;
}
diff -r f8e03cda78d9 -r 0156d98bc822 src/imap/imap-fetch.c
--- a/src/imap/imap-fetch.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/imap/imap-fetch.c Tue Nov 17 18:34:29 2009 -0500
@@ -199,7 +199,7 @@ static int get_expunges_fallback(struct
search_ctx = mailbox_search_init(trans, search_args, NULL);
mail_search_args_unref(&search_args);
- while (mailbox_search_next(search_ctx, mail) > 0) {
+ while (mailbox_search_next(search_ctx, mail)) {
if (mail->uid == next_uid) {
if (next_uid < uid_filter[i].seq2)
next_uid++;
@@ -442,8 +442,7 @@ static int imap_fetch_more_int(struct im
if (ctx->cmd->cancel)
return 1;
- if (mailbox_search_next(ctx->search_ctx,
- ctx->mail) <= 0)
+ if (!mailbox_search_next(ctx->search_ctx, ctx->mail))
break;
ctx->cur_mail = ctx->mail;
diff -r f8e03cda78d9 -r 0156d98bc822 src/imap/imap-search.c
--- a/src/imap/imap-search.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/imap/imap-search.c Tue Nov 17 18:34:29 2009 -0500
@@ -347,7 +347,7 @@ static bool cmd_search_more(struct clien
(opts & ~(SEARCH_RETURN_NORESULTS |
SEARCH_RETURN_MIN | SEARCH_RETURN_MAX)) == 0;
while (mailbox_search_next_nonblock(ctx->search_ctx, ctx->mail,
- &tryagain) > 0) {
+ &tryagain)) {
id = cmd->uid ? ctx->mail->uid : ctx->mail->seq;
ctx->result_count++;
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/index/index-search-result.c
--- a/src/lib-storage/index/index-search-result.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/index/index-search-result.c Tue Nov 17 18:34:29 2009 -0500
@@ -75,7 +75,7 @@ search_result_update_search(struct mail_
search_ctx->update_result = result;
mail = mail_alloc(t, 0, NULL);
- while (mailbox_search_next(search_ctx, mail) > 0) {
+ while (mailbox_search_next(search_ctx, mail)) {
i_assert(next_uid != 0);
if (next_uid != mail->uid) {
@@ -168,7 +168,7 @@ int index_search_result_update_appends(s
search_ctx = mailbox_search_init(t, result->search_args, NULL);
mail = mail_alloc(t, 0, NULL);
- while (mailbox_search_next(search_ctx, mail) > 0)
+ while (mailbox_search_next(search_ctx, mail))
mailbox_search_result_add(result, mail->uid);
mail_free(&mail);
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/index/index-search.c Tue Nov 17 18:34:29 2009 -0500
@@ -1257,8 +1257,8 @@ static bool search_would_block(struct in
return ret;
}
-int index_storage_search_next_nonblock(struct mail_search_context *_ctx,
- struct mail *mail, bool *tryagain_r)
+bool index_storage_search_next_nonblock(struct mail_search_context *_ctx,
+ struct mail *mail, bool *tryagain_r)
{
struct index_search_context *ctx = (struct index_search_context *)_ctx;
struct mailbox *box = _ctx->transaction->box;
@@ -1272,15 +1272,15 @@ int index_storage_search_next_nonblock(s
/* everything searched at this point already. just returning
matches from sort list */
if (!index_sort_list_next(ctx->mail_ctx.sort_program, mail))
- return 0;
- return 1;
+ return FALSE;
+ return TRUE;
}
if (search_would_block(ctx)) {
/* this lookup is useful when a large number of
messages match */
*tryagain_r = TRUE;
- return 0;
+ return FALSE;
}
ctx->mail = mail;
@@ -1343,8 +1343,7 @@ int index_storage_search_next_nonblock(s
return index_storage_search_next_nonblock(_ctx, mail,
tryagain_r);
}
-
- return ctx->failed ? -1 : (match ? 1 : 0);
+ return !ctx->failed && match;
}
bool index_storage_search_next_update_seq(struct mail_search_context *_ctx)
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/index/index-storage.h
--- a/src/lib-storage/index/index-storage.h Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/index/index-storage.h Tue Nov 17 18:34:29 2009 -0500
@@ -148,10 +148,8 @@ index_storage_search_init(struct mailbox
struct mail_search_args *args,
const enum mail_sort_type *sort_program);
int index_storage_search_deinit(struct mail_search_context *ctx);
-int index_storage_search_next(struct mail_search_context *ctx,
- struct mail *mail);
-int index_storage_search_next_nonblock(struct mail_search_context *ctx,
- struct mail *mail, bool *tryagain_r);
+bool index_storage_search_next_nonblock(struct mail_search_context *ctx,
+ struct mail *mail, bool *tryagain_r);
bool index_storage_search_next_update_seq(struct mail_search_context *ctx);
void index_transaction_set_max_modseq(struct mailbox_transaction_context *_t,
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/index/index-thread.c
--- a/src/lib-storage/index/index-thread.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/index/index-thread.c Tue Nov 17 18:34:29 2009 -0500
@@ -340,7 +340,7 @@ static int mail_thread_index_map_build(s
mail = mail_alloc(ctx->t, 0, headers_ctx);
mailbox_header_lookup_unref(&headers_ctx);
- while (mailbox_search_next(search_ctx, mail) > 0) {
+ while (mailbox_search_next(search_ctx, mail)) {
if (mail_thread_map_add_mail(ctx, mail) < 0) {
ret = -1;
break;
@@ -533,7 +533,7 @@ static void mail_thread_cache_sync_add(s
count - kind of kludgy) */
i_assert(msgid_map[count].uid == 0);
i = 0;
- while (i < count && mailbox_search_next(search_ctx, mail) > 0) {
+ while (i < count && mailbox_search_next(search_ctx, mail)) {
while (msgid_map[i].uid < mail->uid)
i++;
i_assert(i < count);
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/mail-storage-private.h
--- a/src/lib-storage/mail-storage-private.h Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/mail-storage-private.h Tue Nov 17 18:34:29 2009 -0500
@@ -189,8 +189,8 @@ struct mailbox_vfuncs {
struct mail_search_args *args,
const enum mail_sort_type *sort_program);
int (*search_deinit)(struct mail_search_context *ctx);
- int (*search_next_nonblock)(struct mail_search_context *ctx,
- struct mail *mail, bool *tryagain_r);
+ bool (*search_next_nonblock)(struct mail_search_context *ctx,
+ struct mail *mail, bool *tryagain_r);
/* Internal search function which updates ctx->seq */
bool (*search_next_update_seq)(struct mail_search_context *ctx);
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/mail-storage.c
--- a/src/lib-storage/mail-storage.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/mail-storage.c Tue Nov 17 18:34:29 2009 -0500
@@ -817,30 +817,28 @@ int mailbox_search_deinit(struct mail_se
return ret;
}
-int mailbox_search_next(struct mail_search_context *ctx, struct mail *mail)
+bool mailbox_search_next(struct mail_search_context *ctx, struct mail *mail)
{
bool tryagain;
- int ret;
-
- while ((ret = mailbox_search_next_nonblock(ctx, mail,
- &tryagain)) == 0) {
+
+ while (!mailbox_search_next_nonblock(ctx, mail, &tryagain)) {
if (!tryagain)
- break;
- }
-
- return ret;
-}
-
-int mailbox_search_next_nonblock(struct mail_search_context *ctx,
- struct mail *mail, bool *tryagain_r)
-{
- int ret;
-
- ret = ctx->transaction->box->v.
- search_next_nonblock(ctx, mail, tryagain_r);
- if (ret > 0)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool mailbox_search_next_nonblock(struct mail_search_context *ctx,
+ struct mail *mail, bool *tryagain_r)
+{
+ struct mailbox *box = ctx->transaction->box;
+
+ if (!box->v.search_next_nonblock(ctx, mail, tryagain_r))
+ return FALSE;
+ else {
mailbox_search_results_add(ctx, mail->uid);
- return ret;
+ return TRUE;
+ }
}
bool mailbox_search_seen_lost_data(struct mail_search_context *ctx)
@@ -860,7 +858,7 @@ int mailbox_search_result_build(struct m
ctx = mailbox_search_init(t, args, NULL);
*result_r = mailbox_search_result_save(ctx, flags);
mail = mail_alloc(t, 0, NULL);
- while (mailbox_search_next(ctx, mail) > 0) ;
+ while (mailbox_search_next(ctx, mail)) ;
mail_free(&mail);
ret = mailbox_search_deinit(&ctx);
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/mail-storage.h
--- a/src/lib-storage/mail-storage.h Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/mail-storage.h Tue Nov 17 18:34:29 2009 -0500
@@ -491,12 +491,12 @@ mailbox_search_init(struct mailbox_trans
const enum mail_sort_type *sort_program);
/* Deinitialize search request. */
int mailbox_search_deinit(struct mail_search_context **ctx);
-/* Search the next message. Returns 1 if found, 0 if not, -1 if failure. */
-int mailbox_search_next(struct mail_search_context *ctx, struct mail *mail);
+/* Search the next message. Returns TRUE if found, FALSE if not. */
+bool mailbox_search_next(struct mail_search_context *ctx, struct mail *mail);
/* Like mailbox_search_next(), but don't spend too much time searching.
- Returns 1 if found, -1 if failure or 0 with tryagain_r=FALSE if
- finished, and TRUE if more results will by calling the function again. */
-int mailbox_search_next_nonblock(struct mail_search_context *ctx,
+ Returns FALSE with tryagain_r=FALSE if finished, and tryagain_r=TRUE if
+ more results will be returned by calling the function again. */
+bool mailbox_search_next_nonblock(struct mail_search_context *ctx,
struct mail *mail, bool *tryagain_r);
/* Returns TRUE if some messages were already expunged and we couldn't
determine correctly if those messages should have been returned in this
diff -r f8e03cda78d9 -r 0156d98bc822 src/lib-storage/test-mailbox.c
--- a/src/lib-storage/test-mailbox.c Tue Nov 17 18:18:28 2009 -0500
+++ b/src/lib-storage/test-mailbox.c Tue Nov 17 18:34:29 2009 -0500
@@ -238,13 +238,13 @@ static int test_mailbox_search_deinit(st
return 0;
}
-static int
+static bool
More information about the dovecot-cvs
mailing list