Propagator: Debug output regarding OC-ETag
authorMarkus Goetz <markus@woboq.com>
Fri, 27 Mar 2015 12:16:11 +0000 (13:16 +0100)
committerMarkus Goetz <markus@woboq.com>
Fri, 27 Mar 2015 12:16:11 +0000 (13:16 +0100)
We can remove this in some time, but currently it is interesting
to see for what server setup is no ETag but an OC-ETag.

src/libsync/owncloudpropagator_p.h
src/libsync/propagateupload.cpp

index 4a89fe395bd947cbeb81d3358e5d71200f02cb0f..46b5881840c733cf8397fa601d91a26c9fd4e071 100644 (file)
@@ -33,9 +33,14 @@ inline QByteArray parseEtag(const char *header) {
 
 inline QByteArray getEtagFromReply(QNetworkReply *reply)
 {
-    QByteArray ret = parseEtag(reply->rawHeader("OC-ETag"));
+    QByteArray ocEtag = parseEtag(reply->rawHeader("OC-ETag"));
+    QByteArray etag = parseEtag(reply->rawHeader("ETag"));
+    QByteArray ret = ocEtag;
     if (ret.isEmpty()) {
-        ret = parseEtag(reply->rawHeader("ETag"));
+        ret = etag;
+    }
+    if (ocEtag.length() > 0 && ocEtag != etag) {
+        qDebug() << "Quite peculiar, we have an etag != OC-Etag [no problem!]" << etag << ocEtag;
     }
     return ret;
 }
index 4bcbe7965a67d3fc1ade1b031227c09c6397bd88..ce112c9b5e5c55475be0dab60e497e362dd9034c 100644 (file)
@@ -524,8 +524,8 @@ void PropagateUploadFileQNAM::slotPutFinished()
     // But if the upload is ongoing, because not all chunks were uploaded
     // yet, the upload can be stopped and an error can be displayed, because
     // the server hasn't registered the new file yet.
-    bool finished = job->reply()->hasRawHeader("ETag")
-            || job->reply()->hasRawHeader("OC-ETag");
+    QByteArray etag = getEtagFromReply(job->reply());
+    bool finished = etag.length() > 0;
 
     // Check if the file still exists
     const QString fullFilePath(_propagator->getFilePath(_item._file));
@@ -595,7 +595,6 @@ void PropagateUploadFileQNAM::slotPutFinished()
         _item._fileId = fid;
     }
 
-    QByteArray etag = getEtagFromReply(job->reply());
     _item._etag = etag;
 
     _item._responseTimeStamp = job->responseTimestamp();