From c92f5204239fdd0ad8f4a5a835eb61896a3bb4be Mon Sep 17 00:00:00 2001 From: ritsute Date: Mon, 13 Jan 2020 19:25:28 +0800 Subject: [PATCH] Handle broken shared file error gracefully Signed-off-by: Brandon Signed-off-by: Brandon --- src/libsync/discoveryphase.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libsync/discoveryphase.cpp b/src/libsync/discoveryphase.cpp index a4432ad93..276751537 100644 --- a/src/libsync/discoveryphase.cpp +++ b/src/libsync/discoveryphase.cpp @@ -384,7 +384,14 @@ void DiscoverySingleDirectoryJob::directoryListingIteratedSlot(QString file, con propertyMapToFileStat(map, file_stat.get()); if (file_stat->type == ItemTypeDirectory) file_stat->size = 0; - if (file_stat->type == ItemTypeSkip + if (remotePerm.hasPermission(RemotePermissions::IsShared) && file_stat->etag.isEmpty()) { + /* Handle broken shared file error gracefully instead of stopping sync in the desktop client. + DO not set _error */ + qCWarning(lcDiscovery) + << "Missing path to a share :" << file << file_stat->path << file_stat->type << file_stat->size + << file_stat->modtime << file_stat->remotePerm.toString() + << file_stat->etag << file_stat->file_id; + } else if (file_stat->type == ItemTypeSkip || file_stat->size == -1 || file_stat->remotePerm.isNull() || file_stat->etag.isEmpty()