summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-07 16:20:00 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-07 16:20:00 +0200
commitc210d8c434d5fa8f6c56bbbdb0cb993ddd697213 (patch)
treef3f62d8b6ff8665605d3c22997c0e58f233f20c9 /examples
parent41c69690d866414cf90d603629fd488ba9a981b5 (diff)
downloadsink-c210d8c434d5fa8f6c56bbbdb0cb993ddd697213.tar.gz
sink-c210d8c434d5fa8f6c56bbbdb0cb993ddd697213.zip
Avoid crashing if we fail to resolve the local id.
Diffstat (limited to 'examples')
-rw-r--r--examples/imapresource/imapresource.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp
index 50deacd..afa72fa 100644
--- a/examples/imapresource/imapresource.cpp
+++ b/examples/imapresource/imapresource.cpp
@@ -400,6 +400,9 @@ public:
400 QByteArray getFolderFromLocalId(const QByteArray &id) 400 QByteArray getFolderFromLocalId(const QByteArray &id)
401 { 401 {
402 auto mailRemoteId = syncStore().resolveLocalId(ApplicationDomain::getTypeName<ApplicationDomain::Mail>(), id); 402 auto mailRemoteId = syncStore().resolveLocalId(ApplicationDomain::getTypeName<ApplicationDomain::Mail>(), id);
403 if (mailRemoteId.isEmpty()) {
404 return {};
405 }
403 return folderIdFromMailRid(mailRemoteId); 406 return folderIdFromMailRid(mailRemoteId);
404 } 407 }
405 408
@@ -419,6 +422,10 @@ public:
419 if (isIndividualMailSync(request)) { 422 if (isIndividualMailSync(request)) {
420 auto newId = request.query.ids().first(); 423 auto newId = request.query.ids().first();
421 auto requestFolder = getFolderFromLocalId(newId); 424 auto requestFolder = getFolderFromLocalId(newId);
425 if (requestFolder.isEmpty()) {
426 SinkWarningCtx(mLogCtx) << "Failed to find folder for local id. Ignoring request: " << request.query;
427 return;
428 }
422 for (auto &r : queue) { 429 for (auto &r : queue) {
423 if (isIndividualMailSync(r)) { 430 if (isIndividualMailSync(r)) {
424 auto queueFolder = getFolderFromLocalId(r.query.ids().first()); 431 auto queueFolder = getFolderFromLocalId(r.query.ids().first());