Don't make files read-only when server is too old #4450
authorChristian Kamm <mail@ckamm.de>
Tue, 1 Mar 2016 09:11:20 +0000 (10:11 +0100)
committerChristian Kamm <mail@ckamm.de>
Tue, 1 Mar 2016 09:11:20 +0000 (10:11 +0100)
src/libsync/propagatedownload.cpp

index dfc27951193237646c0bca625a6b2828313611a6..00a17bb134dc726edbd54862db33e8abc749985e 100644 (file)
@@ -691,8 +691,13 @@ void PropagateDownloadFileQNAM::downloadFinished()
     }
 
     // Apply the remote permissions
-    FileSystem::setFileReadOnlyWeak(_tmpFile.fileName(),
-                                    !_item->_remotePerm.contains('W'));
+    // Older server versions sometimes provide empty remote permissions
+    // see #4450 - don't adjust the write permissions there.
+    const int serverVersionGoodRemotePerm = 0x070000; // 7.0.0
+    if (_propagator->account()->serverVersionInt() >= serverVersionGoodRemotePerm) {
+        FileSystem::setFileReadOnlyWeak(_tmpFile.fileName(),
+                                        !_item->_remotePerm.contains('W'));
+    }
 
     QString error;
     _propagator->addTouchedFile(fn);