From 5393b8b0d9c59ba5d2399a8532d5277b89eda318 Mon Sep 17 00:00:00 2001 From: uclaros Date: Fri, 26 Aug 2022 11:09:40 +0300 Subject: [PATCH] make searching for headers case insensitive --- src/core/pointcloud/qgslazinfo.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/pointcloud/qgslazinfo.cpp b/src/core/pointcloud/qgslazinfo.cpp index c162d40efe4..bf6064c97e2 100644 --- a/src/core/pointcloud/qgslazinfo.cpp +++ b/src/core/pointcloud/qgslazinfo.cpp @@ -355,7 +355,17 @@ bool QgsLazInfo::supportsRangeQueries( QUrl &url ) QgsBlockingNetworkRequest req; QgsBlockingNetworkRequest::ErrorCode errCode = req.head( nr ); QgsNetworkReplyContent reply = req.reply(); + const QList 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; }