diff options
-rw-r--r-- | src/fqterm/fqterm_window.cpp | 7 | ||||
-rw-r--r-- | src/fqterm/fqterm_window.h | 2 | ||||
-rw-r--r-- | src/protocol/fqterm_ssh_socket.cpp | 6 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/fqterm/fqterm_window.cpp b/src/fqterm/fqterm_window.cpp index c59fcd3..bd44e70 100644 --- a/src/fqterm/fqterm_window.cpp +++ b/src/fqterm/fqterm_window.cpp @@ -678,6 +678,13 @@ void FQTermWindow::requestUserPwd(QString *user, QString *pwd, bool *isOK) { *isOK = (login.exec() == QDialog::Accepted); } +void FQTermWindow::warnInsecure(const QString &msg, bool *isOK) +{ + QMessageBox mb(QMessageBox::Warning, "FQTerm", msg, + QMessageBox::Yes | QMessageBox::No, this); + *isOK = (mb.exec() == QMessageBox::Yes); +} + void FQTermWindow::ZmodemState(int type, int value, const char *status) { QString strMsg; //to be completed diff --git a/src/fqterm/fqterm_window.h b/src/fqterm/fqterm_window.h index 984d476..377af4f 100644 --- a/src/fqterm/fqterm_window.h +++ b/src/fqterm/fqterm_window.h @@ -182,7 +182,7 @@ signals: void sessionUpdated(); void requestUserPwd(QString *userName, QString *password, bool *isOK); - void warnInsecure(const QString &msg, bool *isOK) {} + void warnInsecure(const QString &msg, bool *isOK); void TelnetState(int); void ZmodemState(int, int, const char *); diff --git a/src/protocol/fqterm_ssh_socket.cpp b/src/protocol/fqterm_ssh_socket.cpp index c61fe25..d6c2e61 100644 --- a/src/protocol/fqterm_ssh_socket.cpp +++ b/src/protocol/fqterm_ssh_socket.cpp @@ -192,6 +192,12 @@ void FQTermSSHSocket::socketReadyRead() { FQ_TRACE("sshsocket", 3) << "SSH version chosen: " << version; if (version == 1) { + bool isok; + emit warnInsecure(tr("You are using the insecure SSH1 connection, continue?"), &isok); + if (!isok) { + handleError(tr("Closed by user because of the insecure SSH1 connection.")); + return; + } init(1); ssh_version_ = 1; socketWriteBlock(V1STR, strlen(V1STR)); |