void DiscoverySingleDirectoryJob::lsJobFinishedWithErrorSlot(QNetworkReply *r)
{
- QString contentType = r->header(QNetworkRequest::ContentTypeHeader).toString();
- int httpCode = r->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- QString msg = r->errorString();
+ const auto contentType = r->header(QNetworkRequest::ContentTypeHeader).toString();
+ const auto invalidContentType = !contentType.contains("application/xml; charset=utf-8") &&
+ !contentType.contains("application/xml; charset=\"utf-8\"") &&
+ !contentType.contains("text/xml; charset=utf-8") &&
+ !contentType.contains("text/xml; charset=\"utf-8\"");
+ const auto httpCode = r->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+ auto msg = r->errorString();
+
qCWarning(lcDiscovery) << "LSCOL job error" << r->errorString() << httpCode << r->error();
- if (r->error() == QNetworkReply::NoError
- && !contentType.contains("application/xml; charset=utf-8")) {
+
+ if (r->error() == QNetworkReply::NoError && invalidContentType) {
msg = tr("Server error: PROPFIND reply is not XML formatted!");
}
+
emit finished(HttpError{ httpCode, msg });
deleteLater();
}
qCInfo(lcLsColJob) << "LSCOL of" << reply()->request().url() << "FINISHED WITH STATUS"
<< replyStatusString();
- QString contentType = reply()->header(QNetworkRequest::ContentTypeHeader).toString();
- int httpCode = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- if (httpCode == 207 && contentType.contains("application/xml; charset=utf-8")) {
+ const auto contentType = reply()->header(QNetworkRequest::ContentTypeHeader).toString();
+ const auto httpCode = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+ const auto validContentType = contentType.contains("application/xml; charset=utf-8") ||
+ contentType.contains("application/xml; charset=\"utf-8\"") ||
+ contentType.contains("text/xml; charset=utf-8") ||
+ contentType.contains("text/xml; charset=\"utf-8\"");
+
+ if (httpCode == 207 && validContentType) {
LsColXMLParser parser;
connect(&parser, &LsColXMLParser::directoryListingSubfolders,
this, &LsColJob::directoryListingSubfolders);