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;
}
// 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));
_item._fileId = fid;
}
- QByteArray etag = getEtagFromReply(job->reply());
_item._etag = etag;
_item._responseTimeStamp = job->responseTimestamp();