diff options
author | Vincent Richard <[email protected]> | 2014-03-10 19:00:24 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2014-03-10 19:00:24 +0000 |
commit | 642cdf42f6d2b58d731a42d85f7167e835b3040b (patch) | |
tree | 30a4cf492b293713745ba2b6da44050bdd54c58d | |
parent | Issue #47: get and fetch messages. (diff) | |
download | vmime-642cdf42f6d2b58d731a42d85f7167e835b3040b.tar.gz vmime-642cdf42f6d2b58d731a42d85f7167e835b3040b.zip |
Premature return if message list/set is empty.
-rw-r--r-- | src/vmime/net/imap/IMAPFolder.cpp | 6 | ||||
-rw-r--r-- | src/vmime/net/maildir/maildirFolder.cpp | 6 | ||||
-rw-r--r-- | src/vmime/net/pop3/POP3Folder.cpp | 6 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/vmime/net/imap/IMAPFolder.cpp b/src/vmime/net/imap/IMAPFolder.cpp index 86f13f4b..d02e5683 100644 --- a/src/vmime/net/imap/IMAPFolder.cpp +++ b/src/vmime/net/imap/IMAPFolder.cpp @@ -767,6 +767,9 @@ void IMAPFolder::fetchMessages(std::vector <shared_ptr <message> >& msg, const f else if (!isOpen()) throw exceptions::illegal_state("Folder not open"); + if (msg.empty()) + return; + // Build message numbers list std::vector <int> list; list.reserve(msg.size()); @@ -870,6 +873,9 @@ std::vector <shared_ptr <message> > IMAPFolder::getAndFetchMessages else if (!isOpen()) throw exceptions::illegal_state("Folder not open"); + if (msgs.isEmpty()) + return std::vector <shared_ptr <message> >(); + // Ensure we also get the UID for each message fetchAttributes attribsWithUID(attribs); attribsWithUID.add(fetchAttributes::UID); diff --git a/src/vmime/net/maildir/maildirFolder.cpp b/src/vmime/net/maildir/maildirFolder.cpp index 79f01ab8..eb0eb9fd 100644 --- a/src/vmime/net/maildir/maildirFolder.cpp +++ b/src/vmime/net/maildir/maildirFolder.cpp @@ -1187,6 +1187,9 @@ void maildirFolder::fetchMessages(std::vector <shared_ptr <message> >& msg, else if (!isOpen()) throw exceptions::illegal_state("Folder not open"); + if (msg.empty()) + return; + const size_t total = msg.size(); size_t current = 0; @@ -1226,6 +1229,9 @@ void maildirFolder::fetchMessage(shared_ptr <message> msg, const fetchAttributes std::vector <shared_ptr <message> > maildirFolder::getAndFetchMessages (const messageSet& msgs, const fetchAttributes& attribs) { + if (msgs.isEmpty()) + return std::vector <shared_ptr <message> >(); + std::vector <shared_ptr <message> > messages = getMessages(msgs); fetchMessages(messages, attribs); diff --git a/src/vmime/net/pop3/POP3Folder.cpp b/src/vmime/net/pop3/POP3Folder.cpp index e23030d8..78400fce 100644 --- a/src/vmime/net/pop3/POP3Folder.cpp +++ b/src/vmime/net/pop3/POP3Folder.cpp @@ -315,6 +315,9 @@ void POP3Folder::fetchMessages(std::vector <shared_ptr <message> >& msg, const f else if (!isOpen()) throw exceptions::illegal_state("Folder not open"); + if (msg.empty()) + return; + const size_t total = msg.size(); size_t current = 0; @@ -487,6 +490,9 @@ void POP3Folder::fetchMessage(shared_ptr <message> msg, const fetchAttributes& o std::vector <shared_ptr <message> > POP3Folder::getAndFetchMessages (const messageSet& msgs, const fetchAttributes& attribs) { + if (msgs.isEmpty()) + return std::vector <shared_ptr <message> >(); + std::vector <shared_ptr <message> > messages = getMessages(msgs); fetchMessages(messages, attribs); |