mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
Merge PR #3310: Correctly handle ServerResolver errors, with dedicated signal and slot
This commit is contained in:
commit
e5ff9c5225
@ -809,6 +809,7 @@ static void recreateServerHandler() {
|
||||
g.sh = sh;
|
||||
g.mw->connect(sh.get(), SIGNAL(connected()), g.mw, SLOT(serverConnected()));
|
||||
g.mw->connect(sh.get(), SIGNAL(disconnected(QAbstractSocket::SocketError, QString)), g.mw, SLOT(serverDisconnected(QAbstractSocket::SocketError, QString)));
|
||||
g.mw->connect(sh.get(), SIGNAL(error(QAbstractSocket::SocketError, QString)), g.mw, SLOT(resolverError(QAbstractSocket::SocketError, QString)));
|
||||
}
|
||||
|
||||
void MainWindow::openUrl(const QUrl &url) {
|
||||
@ -3013,6 +3014,21 @@ void MainWindow::serverDisconnected(QAbstractSocket::SocketError err, QString re
|
||||
AudioInput::setMaxBandwidth(-1);
|
||||
}
|
||||
|
||||
void MainWindow::resolverError(QAbstractSocket::SocketError, QString reason) {
|
||||
if (! reason.isEmpty()) {
|
||||
g.l->log(Log::ServerDisconnected, tr("Server connection failed: %1.").arg(Qt::escape(reason)));
|
||||
} else {
|
||||
g.l->log(Log::ServerDisconnected, tr("Server connection failed."));
|
||||
}
|
||||
|
||||
if (g.s.bReconnect) {
|
||||
qaServerDisconnect->setEnabled(true);
|
||||
if (bRetryServer) {
|
||||
qtReconnect->start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::trayAboutToShow() {
|
||||
bool top = false;
|
||||
|
||||
|
||||
@ -267,6 +267,7 @@ class MainWindow : public QMainWindow, public MessageHandler, public Ui::MainWin
|
||||
void qtvUserCurrentChanged(const QModelIndex &, const QModelIndex &);
|
||||
void serverConnected();
|
||||
void serverDisconnected(QAbstractSocket::SocketError, QString reason);
|
||||
void resolverError(QAbstractSocket::SocketError, QString reason);
|
||||
void viewCertificate(bool);
|
||||
void openUrl(const QUrl &url);
|
||||
void context_triggered();
|
||||
|
||||
@ -295,6 +295,7 @@ void ServerHandler::run() {
|
||||
int ret = exec();
|
||||
if (ret < 0) {
|
||||
qWarning("ServerHandler: failed to resolve hostname");
|
||||
emit error(QAbstractSocket::HostNotFoundError, tr("Unable to resolve hostname"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -135,6 +135,7 @@ class ServerHandler : public QThread {
|
||||
void disconnect();
|
||||
void run() Q_DECL_OVERRIDE;
|
||||
signals:
|
||||
void error(QAbstractSocket::SocketError, QString reason);
|
||||
void disconnected(QAbstractSocket::SocketError, QString reason);
|
||||
void connected();
|
||||
void pingRequested();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user