From: Timo Sirainen Date: Thu, 19 Dec 2013 02:18:30 +0000 (+0200) Subject: pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID support. X-Git-Tag: 2.2.10~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=050acc3755ccc5bcf261a6de3250164a54a0b6f3;p=thirdparty%2Fdovecot%2Fcore.git pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID support. --- diff --git a/src/lib-storage/index/pop3c/pop3c-storage.c b/src/lib-storage/index/pop3c/pop3c-storage.c index 9476fb713e..65b321c2eb 100644 --- a/src/lib-storage/index/pop3c/pop3c-storage.c +++ b/src/lib-storage/index/pop3c/pop3c-storage.c @@ -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,