diff options
| author | nixo <nicolo@nixo.xyz> | 2020-10-29 18:39:17 +0100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2020-10-29 20:23:32 +0100 |
| commit | d3931529ccca3edcdb3fa9f0322a8c4352f2f476 (patch) | |
| tree | be8550d98b74163c9ecc12562a3b04442516716a /src | |
| parent | bf5b2ecd0fde117d550adeadee48d74034ed2cdb (diff) | |
| download | kristall-d3931529ccca3edcdb3fa9f0322a8c4352f2f476.tar.gz | |
gemini: respect sensitive input (status 11)
Diffstat (limited to 'src')
| -rw-r--r-- | src/browsertab.cpp | 3 | ||||
| -rw-r--r-- | src/browsertab.hpp | 2 | ||||
| -rw-r--r-- | src/protocolhandler.hpp | 2 | ||||
| -rw-r--r-- | src/protocols/geminiclient.cpp | 9 |
4 files changed, 12 insertions, 4 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp index d7df827..1c9bcd6 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -618,7 +618,7 @@ File Size: %2 this->updateUI(); } -void BrowserTab::on_inputRequired(const QString &query) +void BrowserTab::on_inputRequired(const QString &query, const bool is_sensitive) { this->network_timeout_timer.stop(); @@ -626,6 +626,7 @@ void BrowserTab::on_inputRequired(const QString &query) dialog.setInputMode(QInputDialog::TextInput); dialog.setLabelText(query); + if (is_sensitive) dialog.setTextEchoMode(QLineEdit::Password); while(true) { diff --git a/src/browsertab.hpp b/src/browsertab.hpp index 0a8f26e..59e4d0c 100644 --- a/src/browsertab.hpp +++ b/src/browsertab.hpp @@ -116,7 +116,7 @@ private: // network slots void on_requestProgress(qint64 transferred); void on_requestComplete(QByteArray const & data, QString const & mime); void on_redirected(QUrl const & uri, bool is_permanent); - void on_inputRequired(QString const & user_query); + void on_inputRequired(QString const & user_query, bool is_sensitive); void on_networkError(ProtocolHandler::NetworkError error, QString const & reason); void on_certificateRequired(QString const & info); void on_hostCertificateLoaded(QSslCertificate const & cert); diff --git a/src/protocolhandler.hpp b/src/protocolhandler.hpp index c5bb653..bdc1cd3 100644 --- a/src/protocolhandler.hpp +++ b/src/protocolhandler.hpp @@ -54,7 +54,7 @@ signals: void redirected(QUrl const & uri, bool is_permanent); //! The server needs some information from the user to process this query. - void inputRequired(QString const & user_query); + void inputRequired(QString const & user_query, bool is_sensitive); //! There was an error while processing the request void networkError(NetworkError error, QString const & reason); diff --git a/src/protocols/geminiclient.cpp b/src/protocols/geminiclient.cpp index 8be1cb6..5fd55af 100644 --- a/src/protocols/geminiclient.cpp +++ b/src/protocols/geminiclient.cpp @@ -208,7 +208,14 @@ void GeminiClient::socketReadyRead() switch(primary_code) { case 1: // requesting input - emit inputRequired(meta); + switch (secondary_code) { + case 1: + emit inputRequired(meta, true); + break; + case 0: + default: + emit inputRequired(meta, false); + } return; case 2: // success |
