]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Extract imapc_mailbox_name_equals from imapc_untagged_status
authorMarkus Valentin <markus.valentin@open-xchange.com>
Tue, 25 May 2021 14:09:25 +0000 (16:09 +0200)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Wed, 26 May 2021 10:02:06 +0000 (12:02 +0200)
src/lib-storage/index/imapc/imapc-mailbox.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h

index d8956f6c4e222815b7afb330136a82d3eb4cc229..370e308be5310735ff45566f616663c782c326fc 100644 (file)
@@ -457,6 +457,23 @@ imapc_mailbox_msgmap_update(struct imapc_mailbox *mbox,
        return 0;
 }
 
+bool imapc_mailbox_name_equals(struct imapc_mailbox *mbox,
+                              const char *remote_name)
+{
+       const char *imapc_remote_name =
+               imapc_mailbox_get_remote_name(mbox);
+
+       if (strcmp(imapc_remote_name, remote_name) == 0) {
+               /* match */
+               return TRUE;
+       } else if (strcasecmp(mbox->box.name, "INBOX") == 0 &&
+                  strcasecmp(remote_name, "INBOX") == 0) {
+               /* case-insensitive INBOX */
+               return TRUE;
+       }
+       return FALSE;
+}
+
 static void imapc_untagged_fetch(const struct imapc_untagged_reply *reply,
                                 struct imapc_mailbox *mbox)
 {
index 84a75d771b1f4cd59fe034e27f47c89c3be77a95..520dc52368288ff0522b0e10202002704ddcc575 100644 (file)
@@ -919,16 +919,9 @@ static void imapc_untagged_status(const struct imapc_untagged_reply *reply,
        if (storage->cur_status_box == NULL)
                return;
 
-       const char *cur_status_remote_name =
-               imapc_mailbox_get_remote_name(storage->cur_status_box);
-       if (strcmp(cur_status_remote_name, remote_name) == 0) {
-               /* match */
-       } else if (strcasecmp(storage->cur_status_box->box.name, "INBOX") == 0 &&
-                  strcasecmp(remote_name, "INBOX") == 0) {
-               /* case-insensitive INBOX */
-       } else {
+       if (!imapc_mailbox_name_equals(storage->cur_status_box,
+                                      remote_name))
                return;
-       }
 
        status = storage->cur_status;
        for (i = 0; list[i].type != IMAP_ARG_EOL; i += 2) {
index 0736e566b0aebd7c6e77470833960d0d74bda732..4c32d29aa16838f26841130280e4a546feaef896 100644 (file)
@@ -200,6 +200,8 @@ void imapc_simple_callback(const struct imapc_command_reply *reply,
                           void *context);
 int imapc_mailbox_commit_delayed_trans(struct imapc_mailbox *mbox,
                                       bool force, bool *changes_r);
+bool imapc_mailbox_name_equals(struct imapc_mailbox *mbox,
+                              const char *remote_name);
 void imapc_mailbox_noop(struct imapc_mailbox *mbox);
 void imapc_mailbox_set_corrupted(struct imapc_mailbox *mbox,
                                 const char *reason, ...) ATTR_FORMAT(2, 3);