From 7d24e1c0636cd6938e2235c5b67ee0d9489ca916 Mon Sep 17 00:00:00 2001 From: FranciscoPombal Date: Sun, 22 Mar 2020 03:49:06 +0000 Subject: [PATCH 1/2] WebAPI: fix matching uncategorized torrents Closes #11748. --- src/base/http/requestparser.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/base/http/requestparser.cpp b/src/base/http/requestparser.cpp index 524c57772..ef7a94c30 100644 --- a/src/base/http/requestparser.cpp +++ b/src/base/http/requestparser.cpp @@ -201,7 +201,9 @@ bool RequestParser::parseRequestLine(const QString &line) const QByteArray nameComponent = midView(param, 0, eqCharPos); const QByteArray valueComponent = midView(param, (eqCharPos + 1)); const QString paramName = QString::fromUtf8(QByteArray::fromPercentEncoding(nameComponent).replace('+', ' ')); - const QByteArray paramValue = QByteArray::fromPercentEncoding(valueComponent).replace('+', ' '); + const QByteArray paramValue = valueComponent.isNull() + ? "" + : QByteArray::fromPercentEncoding(valueComponent).replace('+', ' '); m_request.query[paramName] = paramValue; } From e496e664db7ec4426c18eb5cb70a72bb77a8ac4f Mon Sep 17 00:00:00 2001 From: FranciscoPombal Date: Sun, 22 Mar 2020 12:16:06 +0000 Subject: [PATCH 2/2] WebAPI: Always allow whitespace in category names --- src/webui/api/torrentscontroller.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index e3684e124..d5b92a57c 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -544,7 +544,7 @@ void TorrentsController::addAction() const TriStateBool addPaused = parseTriStateBool(params()["paused"]); const TriStateBool rootFolder = parseTriStateBool(params()["root_folder"]); const QString savepath = params()["savepath"].trimmed(); - const QString category = params()["category"].trimmed(); + const QString category = params()["category"]; const QString cookie = params()["cookie"]; const QString torrentName = params()["rename"].trimmed(); const int upLimit = params()["upLimit"].toInt(); @@ -1025,7 +1025,7 @@ void TorrentsController::setCategoryAction() requireParams({"hashes", "category"}); const QStringList hashes {params()["hashes"].split('|')}; - const QString category {params()["category"].trimmed()}; + const QString category {params()["category"]}; applyToTorrents(hashes, [category](BitTorrent::TorrentHandle *const torrent) { @@ -1038,7 +1038,7 @@ void TorrentsController::createCategoryAction() { requireParams({"category"}); - const QString category {params()["category"].trimmed()}; + const QString category {params()["category"]}; const QString savePath {params()["savePath"]}; if (category.isEmpty()) @@ -1055,7 +1055,7 @@ void TorrentsController::editCategoryAction() { requireParams({"category", "savePath"}); - const QString category {params()["category"].trimmed()}; + const QString category {params()["category"]}; const QString savePath {params()["savePath"]}; if (category.isEmpty())