]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID support.
authorTimo Sirainen <tss@iki.fi>
Thu, 19 Dec 2013 02:18:30 +0000 (04:18 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 19 Dec 2013 02:18:30 +0000 (04:18 +0200)
src/lib-storage/index/pop3c/pop3c-storage.c

index 9476fb713ebdf364d12bf63c12cf1c80ca92f8e7..65b321c2eb39206d8067300a22465924adca4581 100644 (file)
@@ -213,6 +213,21 @@ pop3c_mailbox_update(struct mailbox *box,
        return index_storage_mailbox_update(box, update);
 }
 
+static int pop3c_mailbox_get_status(struct mailbox *box,
+                                   enum mailbox_status_items items,
+                                   struct mailbox_status *status_r)
+{
+       struct pop3c_mailbox *mbox = (struct pop3c_mailbox *)box;
+
+       if (index_storage_get_status(box, items, status_r) < 0)
+               return -1;
+
+       if ((pop3c_client_get_capabilities(mbox->client) &
+            POP3C_CAPABILITY_UIDL) == 0)
+               status_r->have_guids = FALSE;
+       return 0;
+}
+
 static int pop3c_mailbox_get_metadata(struct mailbox *box,
                                      enum mailbox_metadata_items items,
                                      struct mailbox_metadata *metadata_r)
@@ -308,7 +323,7 @@ struct mailbox pop3c_mailbox = {
                pop3c_mailbox_update,
                index_storage_mailbox_delete,
                index_storage_mailbox_rename,
-               index_storage_get_status,
+               pop3c_mailbox_get_status,
                pop3c_mailbox_get_metadata,
                index_storage_set_subscribed,
                index_storage_attribute_set,