From: Timo Sirainen Date: Mon, 4 Oct 2010 15:01:09 +0000 (+0100) Subject: lib-storage: Don't write to dovecot.mailbox.log if setting subscription didn't actual... X-Git-Tag: 2.0.6~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a0fc34c5cc525334c5a10531713017ae321c573;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Don't write to dovecot.mailbox.log if setting subscription didn't actually change anything. --- diff --git a/src/lib-storage/list/subscription-file.c b/src/lib-storage/list/subscription-file.c index 02439dc7c0..62261b6775 100644 --- a/src/lib-storage/list/subscription-file.c +++ b/src/lib-storage/list/subscription-file.c @@ -195,7 +195,7 @@ int subsfile_set_subscribed(struct mailbox_list *list, const char *path, failed = TRUE; } } - return failed ? -1 : 0; + return failed ? -1 : (changed ? 1 : 0); } struct subsfile_list_context * diff --git a/src/lib-storage/list/subscription-file.h b/src/lib-storage/list/subscription-file.h index 700b3eb080..465733150e 100644 --- a/src/lib-storage/list/subscription-file.h +++ b/src/lib-storage/list/subscription-file.h @@ -13,6 +13,7 @@ int subsfile_list_deinit(struct subsfile_list_context *ctx); /* Returns the next subscribed mailbox, or NULL. */ const char *subsfile_list_next(struct subsfile_list_context *ctx); +/* Returns 1 if subscribed, 0 if no changes done, -1 if error. */ int subsfile_set_subscribed(struct mailbox_list *list, const char *path, const char *temp_prefix, const char *name, bool set); diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index bf72db49bb..bbd19a0d9d 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -1146,9 +1146,10 @@ int mailbox_list_set_subscribed(struct mailbox_list *list, const char *name, bool set) { uint8_t guid[MAIL_GUID_128_SIZE]; + int ret; - if (list->v.set_subscribed(list, name, set) < 0) - return -1; + if ((ret = list->v.set_subscribed(list, name, set)) <= 0) + return ret; /* subscriptions are about names, not about mailboxes. it's possible to have a subscription to nonexistent mailbox. renames also don't