Commit a133cea2 authored by Kai Koehne's avatar Kai Koehne
Browse files

SecureSocketClient: Show general connection errors


So far the example didn't show any errors when the connection to the
server couldn't be established (e.g. because the host/port number was
wrong, but also because the SSL handshake already failed).

The fix shows a modal error dialog in this case.

Change-Id: Ia517bf79c5fb2ccdb1edabded28f86759f3e6dcf
Reviewed-by: default avatarRichard J. Moore <rich@kde.org>
Showing with 11 additions and 4 deletions
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the examples of the Qt Toolkit.
......@@ -46,6 +46,7 @@
#include <QtWidgets/QScrollBar>
#include <QtWidgets/QStyle>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QMessageBox>
#include <QtNetwork/QSslCipher>
SslClient::SslClient(QWidget *parent)
......@@ -96,6 +97,8 @@ void SslClient::secureConnect()
this, SLOT(socketStateChanged(QAbstractSocket::SocketState)));
connect(socket, SIGNAL(encrypted()),
this, SLOT(socketEncrypted()));
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(socketError(QAbstractSocket::SocketError)));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)),
this, SLOT(sslErrors(QList<QSslError>)));
connect(socket, SIGNAL(readyRead()),
......@@ -118,8 +121,6 @@ void SslClient::socketStateChanged(QAbstractSocket::SocketState state)
form->cipherLabel->setText(tr("<none>"));
if (padLock)
padLock->hide();
socket->deleteLater();
socket = 0;
}
}
......@@ -180,6 +181,11 @@ void SslClient::sendData()
form->sessionInput->clear();
}
void SslClient::socketError(QAbstractSocket::SocketError error)
{
QMessageBox::critical(this, tr("Connection error"), socket->errorString());
}
void SslClient::sslErrors(const QList<QSslError> &errors)
{
QDialog errorDialog(this);
......
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the examples of the Qt Toolkit.
......@@ -65,6 +65,7 @@ private slots:
void socketEncrypted();
void socketReadyRead();
void sendData();
void socketError(QAbstractSocket::SocketError error);
void sslErrors(const QList<QSslError> &errors);
void displayCertificateInfo();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment