From ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 31 May 2015 17:51:20 +0200 Subject: GH-1020 use plain strings for library URLs Because the URLs can contain {}, which are percent encoded in URLs and this breaks variable substitution --- logic/minecraft/OneSixUpdate.cpp | 2 +- logic/minecraft/RawLibrary.cpp | 13 ++++++++++--- logic/minecraft/RawLibrary.h | 6 +++--- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'logic') diff --git a/logic/minecraft/OneSixUpdate.cpp b/logic/minecraft/OneSixUpdate.cpp index 9dcb977b..485727ec 100644 --- a/logic/minecraft/OneSixUpdate.cpp +++ b/logic/minecraft/OneSixUpdate.cpp @@ -228,7 +228,7 @@ void OneSixUpdate::jarlibStart() } QString raw_storage = lib->storageSuffix(); - QString raw_dl = lib->url().toString(); + QString raw_dl = lib->url(); auto f = [&](QString storage, QString dl) { diff --git a/logic/minecraft/RawLibrary.cpp b/logic/minecraft/RawLibrary.cpp index fa8270cd..bae6c66a 100644 --- a/logic/minecraft/RawLibrary.cpp +++ b/logic/minecraft/RawLibrary.cpp @@ -157,7 +157,7 @@ QJsonObject RawLibrary::toJson() const m_base_url != "https://" + URLConstants::AWS_DOWNLOAD_LIBRARIES && m_base_url != "https://" + URLConstants::LIBRARY_BASE && !m_base_url.isEmpty()) { - libRoot.insert("url", m_base_url.toString()); + libRoot.insert("url", m_base_url); } if (isNative()) { @@ -224,7 +224,7 @@ bool RawLibrary::filesExist(const QDir &base) const } return true; } -QUrl RawLibrary::url() const +QString RawLibrary::url() const { if (!m_absolute_url.isEmpty()) { @@ -236,7 +236,14 @@ QUrl RawLibrary::url() const return QString("https://" + URLConstants::LIBRARY_BASE) + storageSuffix(); } - return m_base_url.resolved(storageSuffix()); + if(m_base_url.endsWith('/')) + { + return m_base_url + storageSuffix(); + } + else + { + return m_base_url + QChar('/') + storageSuffix(); + } } bool RawLibrary::isActive() const diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h index 3f3cb925..e51cbf4c 100644 --- a/logic/minecraft/RawLibrary.h +++ b/logic/minecraft/RawLibrary.h @@ -86,7 +86,7 @@ public: /* methods */ QString storagePath() const; /// Set the url base for downloads - void setBaseUrl(const QUrl &base_url) + void setBaseUrl(const QString &base_url) { m_base_url = base_url; } @@ -127,7 +127,7 @@ public: /* methods */ bool isActive() const; /// Get the URL to download the library from - QUrl url() const; + QString url() const; protected: /* data */ /// the basic gradle dependency specifier. @@ -141,7 +141,7 @@ protected: /* data */ public: /* data */ // TODO: make all of these protected, clean up semantics of implicit vs. explicit values. /// URL where the file can be downloaded - QUrl m_base_url; + QString m_base_url; /// DEPRECATED: absolute URL. takes precedence the normal download URL, if defined QString m_absolute_url; -- cgit v1.2.3