aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/imap/IMAPFolder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/imap/IMAPFolder.cpp')
-rw-r--r--src/net/imap/IMAPFolder.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/net/imap/IMAPFolder.cpp b/src/net/imap/IMAPFolder.cpp
index 60133a29..3a38182e 100644
--- a/src/net/imap/IMAPFolder.cpp
+++ b/src/net/imap/IMAPFolder.cpp
@@ -596,10 +596,10 @@ std::vector <ref <message> > IMAPFolder::getMessagesByUID(const std::vector <mes
std::ostringstream cmd;
cmd.imbue(std::locale::classic());
- cmd << "UID FETCH " << IMAPUtils::extractUIDFromGlobalUID(uids[0]);
+ cmd << "UID FETCH " << uids[0];
for (std::vector <message::uid>::size_type i = 1, n = uids.size() ; i < n ; ++i)
- cmd << "," << IMAPUtils::extractUIDFromGlobalUID(uids[i]);
+ cmd << "," << uids[i];
cmd << " UID";
@@ -639,7 +639,7 @@ std::vector <ref <message> > IMAPFolder::getMessagesByUID(const std::vector <mes
// Get Process fetch response for this message
const int msgNum = static_cast <int>(messageData->number());
- message::uid msgUID, msgFullUID;
+ message::uid msgUID;
// Find UID in message attributes
const std::vector <IMAPParser::msg_att_item*> atts = messageData->msg_att()->items();
@@ -649,9 +649,7 @@ std::vector <ref <message> > IMAPFolder::getMessagesByUID(const std::vector <mes
{
if ((*it)->type() == IMAPParser::msg_att_item::UID)
{
- msgFullUID = IMAPUtils::makeGlobalUID(m_status->getUIDValidity(), (*it)->unique_id()->value());
msgUID = (*it)->unique_id()->value();
-
break;
}
}
@@ -659,7 +657,7 @@ std::vector <ref <message> > IMAPFolder::getMessagesByUID(const std::vector <mes
if (!msgUID.empty())
{
ref <IMAPFolder> thisFolder = thisRef().dynamicCast <IMAPFolder>();
- messages.push_back(vmime::create <IMAPMessage>(thisFolder, msgNum, msgFullUID));
+ messages.push_back(vmime::create <IMAPMessage>(thisFolder, msgNum, msgUID));
}
}
@@ -676,6 +674,15 @@ int IMAPFolder::getMessageCount()
}
+vmime_uint32 IMAPFolder::getUIDValidity() const
+{
+ if (!isOpen())
+ throw exceptions::illegal_state("Folder not open");
+
+ return m_status->getUIDValidity();
+}
+
+
vmime_uint64 IMAPFolder::getHighestModSequence() const
{
if (!isOpen())