mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-22 21:15:55 +03:00
Merge pull request #4919 from nextcloud/bugfix/accept-valid-content-types
Accept valid lsColJob reply XML content types
This commit is contained in:
commit
88464a097d
2 changed files with 19 additions and 8 deletions
|
@ -583,14 +583,20 @@ void DiscoverySingleDirectoryJob::lsJobFinishedWithoutErrorSlot()
|
|||
|
||||
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();
|
||||
}
|
||||
|
|
|
@ -395,9 +395,14 @@ bool LsColJob::finished()
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue