![]() |
Qt 6.x
The Qt SDK
|
\inmodule QtNetwork More...
#include <qsslserver.h>
Signals | |
void | sslErrors (QSslSocket *socket, const QList< QSslError > &errors) |
QSslServer emits this signal after the SSL handshake to indicate that one or more errors have occurred while establishing the identity of the peer. | |
void | peerVerifyError (QSslSocket *socket, const QSslError &error) |
QSslServer can emit this signal several times during the SSL handshake, before encryption has been established, to indicate that an error has occurred while establishing the identity of the peer. | |
void | errorOccurred (QSslSocket *socket, QAbstractSocket::SocketError error) |
This signal is emitted after an error occurred during handshake. | |
void | preSharedKeyAuthenticationRequired (QSslSocket *socket, QSslPreSharedKeyAuthenticator *authenticator) |
QSslServer emits this signal when socket negotiates a PSK ciphersuite, and therefore PSK authentication is then required. | |
void | alertSent (QSslSocket *socket, QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
QSslServer emits this signal if an alert message was sent from socket to a peer. | |
void | alertReceived (QSslSocket *socket, QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
QSslServer emits this signal if an alert message was received by the socket from a peer. | |
void | handshakeInterruptedOnError (QSslSocket *socket, const QSslError &error) |
QSslServer emits this signal if a certificate verification error was found by socket and if early error reporting was enabled in QSslConfiguration. | |
void | startedEncryptionHandshake (QSslSocket *socket) |
This signal is emitted when the client, connected to socket, initiates the TLS handshake. | |
![]() | |
void | newConnection () |
This signal is emitted every time a new connection is available, regardless of whether it has been added to the pending connections queue or not. | |
void | pendingConnectionAvailable (QPrivateSignal) |
This signal is emitted every time a new connection has been added to the pending connections queue. | |
void | acceptError (QAbstractSocket::SocketError socketError) |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
QSslServer (QObject *parent=nullptr) | |
Constructs a new QSslServer with the given parent. | |
~QSslServer () override | |
Destroys the QSslServer. | |
void | setSslConfiguration (const QSslConfiguration &sslConfiguration) |
Sets the sslConfiguration to use for all following incoming connections. | |
QSslConfiguration | sslConfiguration () const |
Returns the current ssl configuration. | |
void | setHandshakeTimeout (int timeout) |
Sets the timeout to use for all incoming handshakes, in milliseconds. | |
int | handshakeTimeout () const |
Returns the currently configured handshake timeout. | |
![]() | |
QTcpServer (QObject *parent=nullptr) | |
Constructs a QTcpServer object. | |
virtual | ~QTcpServer () |
Destroys the QTcpServer object. | |
bool | listen (const QHostAddress &address=QHostAddress::Any, quint16 port=0) |
Tells the server to listen for incoming connections on address address and port port. | |
void | close () |
Closes the server. | |
bool | isListening () const |
Returns true if the server is currently listening for incoming connections; otherwise returns false . | |
void | setMaxPendingConnections (int numConnections) |
Sets the maximum number of pending accepted connections to numConnections. | |
int | maxPendingConnections () const |
Returns the maximum number of pending accepted connections. | |
void | setListenBacklogSize (int size) |
Sets the backlog queue size of to be accepted connections to size. | |
int | listenBacklogSize () const |
Returns the backlog queue size of to be accepted connections. | |
quint16 | serverPort () const |
Returns the server's port if the server is listening for connections; otherwise returns 0. | |
QHostAddress | serverAddress () const |
Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null. | |
qintptr | socketDescriptor () const |
Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening. | |
bool | setSocketDescriptor (qintptr socketDescriptor) |
Sets the socket descriptor this server should use when listening for incoming connections to socketDescriptor. | |
bool | waitForNewConnection (int msec=0, bool *timedOut=nullptr) |
Waits for at most msec milliseconds or until an incoming connection is available. | |
virtual bool | hasPendingConnections () const |
Returns true if the server has a pending connection; otherwise returns false . | |
virtual QTcpSocket * | nextPendingConnection () |
Returns the next pending connection as a connected QTcpSocket object. | |
QAbstractSocket::SocketError | serverError () const |
Returns an error code for the last error that occurred. | |
QString | errorString () const |
Returns a human readable description of the last error that occurred. | |
void | pauseAccepting () |
void | resumeAccepting () |
void | setProxy (const QNetworkProxy &networkProxy) |
QNetworkProxy | proxy () const |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Protected Member Functions | |
void | incomingConnection (qintptr socket) override |
Called when a new connection is established. | |
![]() | |
virtual void | incomingConnection (qintptr handle) |
This virtual function is called by QTcpServer when a new connection is available. | |
void | addPendingConnection (QTcpSocket *socket) |
This function is called by QTcpServer::incomingConnection() to add the socket to the list of pending incoming connections. | |
QTcpServer (QAbstractSocket::SocketType socketType, QTcpServerPrivate &dd, QObject *parent=nullptr) | |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Additional Inherited Members | |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
\inmodule QtNetwork
Implements an encrypted, secure TCP server over TLS.
Class to use in place of QTcpServer to implement TCP server using Transport Layer Security (TLS).
To configure the secure handshake settings, use the applicable setter functions on a QSslConfiguration object, and then use it as an argument to the setSslConfiguration() function. All following incoming connections handled will use these settings.
To start listening to incoming connections use the listen() function inherited from QTcpServer. Other settings can be configured by using the setter functions inherited from the QTcpServer class.
Connect to the signals of this class to respond to the incoming connection attempts. They are the same as the signals on QSslSocket, but also passes a pointer to the socket in question.
When responding to the pendingConnectionAvailable() signal, use the nextPendingConnection() function to fetch the next incoming connection and take it out of the pending connection queue. The QSslSocket is a child of the QSslServer and will be deleted when the QSslServer is deleted. It is still a good idea to destroy the object explicitly when you are done with it, to avoid wasting memory.
Definition at line 24 of file qsslserver.h.
Constructs a new QSslServer with the given parent.
Definition at line 200 of file qsslserver.cpp.
|
override |
Destroys the QSslServer.
All open connections are closed.
Definition at line 210 of file qsslserver.cpp.
|
signal |
QSslServer emits this signal if an alert message was received by the socket from a peer.
level tells if the alert was fatal or it was a warning. type is the code explaining why the alert was sent. When a textual description of the alert message is available, it is supplied in description.
Referenced by incomingConnection().
|
signal |
QSslServer emits this signal if an alert message was sent from socket to a peer.
level describes if it was a warning or a fatal error. type gives the code of the alert message. When a textual description of the alert message is available, it is supplied in description.
Referenced by incomingConnection().
|
signal |
This signal is emitted after an error occurred during handshake.
The socketError parameter describes the type of error that occurred.
The socket is automatically deleted after this signal is emitted if the socket handshake has not reached encrypted state. But if the socket is successfully encrypted, it is inserted into the QSslServer's pending connections queue. When the user has called QTcpServer::nextPendingConnection() it is the user's responsibility to destroy the socket or the socket will not be destroyed until the QSslServer object is destroyed. If an error occurs on a socket after it has been inserted into the pending connections queue, this signal will not be emitted, and the socket will not be removed or destroyed.
Referenced by incomingConnection().
|
signal |
QSslServer emits this signal if a certificate verification error was found by socket and if early error reporting was enabled in QSslConfiguration.
An application is expected to inspect the error and decide if it wants to continue the handshake, or abort it and send an alert message to the peer. The signal-slot connection must be direct.
Referenced by incomingConnection().
int QSslServer::handshakeTimeout | ( | ) | const |
Returns the currently configured handshake timeout.
Definition at line 267 of file qsslserver.cpp.
References d.
Called when a new connection is established.
Converts socket to a QSslSocket.
\reimp
Reimplemented from QTcpServer.
Definition at line 280 of file qsslserver.cpp.
References QTcpServer::addPendingConnection(), QSslSocket::alertReceived(), alertReceived(), QSslSocket::alertSent(), alertSent(), QObject::connect(), d, QObject::deleteLater(), QObject::disconnect(), QSslSocket::encrypted(), error, QAbstractSocket::errorOccurred(), errorOccurred(), QSslSocket::handshakeInterruptedOnError(), handshakeInterruptedOnError(), QSslSocket::isEncrypted(), QSslSocket::peerVerifyError(), peerVerifyError(), QSslSocket::preSharedKeyAuthenticationRequired(), preSharedKeyAuthenticationRequired(), Q_EMIT, Q_LIKELY, QSslSocket::setSocketDescriptor(), QSslSocket::setSslConfiguration(), socket, sslConfiguration(), QSslSocket::sslErrors(), and sslErrors().
|
signal |
QSslServer can emit this signal several times during the SSL handshake, before encryption has been established, to indicate that an error has occurred while establishing the identity of the peer.
The error is usually an indication that socket is unable to securely identify the peer.
This signal provides you with an early indication when something's wrong. By connecting to this signal, you can manually choose to tear down the connection from inside the connected slot before the handshake has completed. If no action is taken, QSslServer will proceed to emitting sslErrors().
Referenced by incomingConnection().
|
signal |
QSslServer emits this signal when socket negotiates a PSK ciphersuite, and therefore PSK authentication is then required.
When using PSK, the server must supply a valid identity and a valid pre shared key, in order for the SSL handshake to continue. Applications can provide this information in a slot connected to this signal, by filling in the passed authenticator object according to their needs.
Referenced by incomingConnection().
void QSslServer::setHandshakeTimeout | ( | int | timeout | ) |
Sets the timeout to use for all incoming handshakes, in milliseconds.
This is relevant in the scenario where a client, whether malicious or accidental, connects to the server but makes no attempt at communicating or initiating a handshake. QSslServer will then automatically end the connection after timeout milliseconds have elapsed.
By default the timeout is 5000 milliseconds (5 seconds).
Definition at line 256 of file qsslserver.cpp.
References d.
void QSslServer::setSslConfiguration | ( | const QSslConfiguration & | sslConfiguration | ) |
Sets the sslConfiguration to use for all following incoming connections.
This must be called before listen() to ensure that the desired configuration was in use during all handshakes.
Definition at line 222 of file qsslserver.cpp.
References d, and sslConfiguration().
QSslConfiguration QSslServer::sslConfiguration | ( | ) | const |
Returns the current ssl configuration.
Definition at line 231 of file qsslserver.cpp.
References d.
Referenced by incomingConnection(), and setSslConfiguration().
|
signal |
QSslServer emits this signal after the SSL handshake to indicate that one or more errors have occurred while establishing the identity of the peer.
The errors are usually an indication that socket is unable to securely identify the peer. Unless any action is taken, the connection will be dropped after this signal has been emitted.
If you want to continue connecting despite the errors that have occurred, you must call QSslSocket::ignoreSslErrors() from inside a slot connected to this signal. If you need to access the error list at a later point, you can call sslHandshakeErrors().
errors contains one or more errors that prevent QSslSocket from verifying the identity of the peer.
Referenced by incomingConnection().
|
signal |
This signal is emitted when the client, connected to socket, initiates the TLS handshake.