Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2014-04-29 18:47:07 +0400
committerOlivier Goffart <ogoffart@woboq.com>2014-04-29 18:58:24 +0400
commit9193286fc11a6a135d6f6891906ffe1ae764032e (patch)
tree6f8eb1d70611e5751d999ae86a02cc3484a60d4e /src/mirall/propagator_qnam.cpp
parent1b8d11182b25bc8c41d39dece61cd924660e0c25 (diff)
Support old server which do not have the x-oc-mtime support
Owncloud 4.5 Or owncloud 5 with chunking Fixes https://github.com/owncloud/core/issues/8392
Diffstat (limited to 'src/mirall/propagator_qnam.cpp')
-rw-r--r--src/mirall/propagator_qnam.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mirall/propagator_qnam.cpp b/src/mirall/propagator_qnam.cpp
index c53e4cbf2..67afa0099 100644
--- a/src/mirall/propagator_qnam.cpp
+++ b/src/mirall/propagator_qnam.cpp
@@ -19,6 +19,7 @@
#include "syncjournalfilerecord.h"
#include "utility.h"
#include "filesystem.h"
+#include "propagatorjobs.h"
#include <QNetworkAccessManager>
#include <QFileInfo>
#include <cmath>
@@ -299,15 +300,24 @@ void PropagateUploadFileQNAM::slotPutFinished()
}
_item._etag = parseEtag(job->reply()->rawHeader("ETag"));
+ _item._responseTimeStamp = job->responseTimestamp();
if (job->reply()->rawHeader("X-OC-MTime") != "accepted") {
- //FIXME
-// updateMTimeAndETag(uri.data(), _item._modtime);
- done(SyncFileItem::NormalError, tr("No X-OC-MTime extension, ownCloud 5 is required"));
+ // X-OC-MTime is supported since owncloud 5.0. But not when chunking.
+ // Normaly Owncloud 6 always put X-OC-MTime
+ qDebug() << "Server do not support X-OC-MTime";
+ PropagatorJob *newJob = new UpdateMTimeAndETagJob(_propagator, _item);
+ QObject::connect(newJob, SIGNAL(completed(SyncFileItem)), this, SLOT(finalize()));
+ QMetaObject::invokeMethod(newJob, "start");
return;
}
+ finalize();
+}
+
+
+void PropagateUploadFileQNAM::finalize()
+{
_item._requestDuration = _duration.elapsed();
- _item._responseTimeStamp = _job->responseTimestamp();
_propagator->_journal->setFileRecord(SyncJournalFileRecord(_item, _propagator->_localDir + _item._file));
// Remove from the progress database: