From f6c279f6f2c6ab2b11d1b48cfe418be2ff3a49ff Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Wed, 28 Feb 2018 22:07:53 +0200 Subject: [PATCH] Propagate errors during /login & /versions --- src/LoginPage.cc | 12 ------------ src/MatrixClient.cc | 10 ++++++++++ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/LoginPage.cc b/src/LoginPage.cc index 3be9d1a9..6c01670a 100644 --- a/src/LoginPage.cc +++ b/src/LoginPage.cc @@ -222,20 +222,8 @@ LoginPage::onServerAddressEntered() void LoginPage::versionError(QString error) { - // Matrix homeservers are often kept on a subdomain called 'matrix' - // so let's try that next, unless the address was set explicitly or the domain - // part of the username already points to this subdomain QUrl currentServer = client_->getHomeServer(); QString mxidAddress = matrixid_input_->text().split(":").at(1); - if (currentServer.host() == inferredServerAddress_ && - !currentServer.host().startsWith("matrix")) { - error_label_->setText(""); - currentServer.setHost(QString("matrix.") + currentServer.host()); - serverInput_->setText(currentServer.host()); - client_->setServer(currentServer.host()); - client_->versions(); - return; - } error_label_->setText(error); serverInput_->show(); diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc index b5c4900b..bcf7a62b 100644 --- a/src/MatrixClient.cc +++ b/src/MatrixClient.cc @@ -123,6 +123,11 @@ MatrixClient::login(const QString &username, const QString &password) noexcept int status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (reply->error()) { + emit loginError(reply->errorString()); + return; + } + if (status_code == 403) { emit loginError(tr("Wrong username or password")); return; @@ -428,6 +433,11 @@ MatrixClient::versions() noexcept int status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (reply->error()) { + emit versionError(reply->errorString()); + return; + } + if (status_code == 404) { emit versionError("Versions endpoint was not found on the server. Possibly " "not a Matrix server");