make searching for headers case insensitive

This commit is contained in:
uclaros 2022-08-26 11:09:40 +03:00 committed by Nyall Dawson
parent a95b21305e
commit 5393b8b0d9

View File

@ -355,7 +355,17 @@ bool QgsLazInfo::supportsRangeQueries( QUrl &url )
QgsBlockingNetworkRequest req;
QgsBlockingNetworkRequest::ErrorCode errCode = req.head( nr );
QgsNetworkReplyContent reply = req.reply();
const QList<QgsNetworkReplyContent::RawHeaderPair> pairs = reply.rawHeaderPairs();
bool acceptsRanges = false;
for ( const auto &pair : pairs )
{
if ( QString::fromLocal8Bit( pair.first ).compare( QStringLiteral( "Accept-Ranges" ), Qt::CaseInsensitive ) == 0 &&
QString::fromLocal8Bit( pair.second ).compare( QStringLiteral( "bytes" ), Qt::CaseInsensitive ) == 0 )
{
acceptsRanges = true;
break;
}
}
QString acceptRangesHeader = reply.rawHeader( QStringLiteral( "Accept-Ranges" ).toLocal8Bit() );
return errCode == QgsBlockingNetworkRequest::NoError && acceptRangesHeader.compare( QStringLiteral( "bytes" ), Qt::CaseSensitivity::CaseInsensitive ) == 0;
return errCode == QgsBlockingNetworkRequest::NoError && acceptsRanges;
}