diff options
Diffstat (limited to 'src/server/net/sslserver.h')
-rw-r--r-- | src/server/net/sslserver.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/server/net/sslserver.h b/src/server/net/sslserver.h new file mode 100644 index 0000000..400bf6a --- /dev/null +++ b/src/server/net/sslserver.h @@ -0,0 +1,50 @@ +/* +# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# src/net/SslServer.cpp +# - provide QTcpServer-like behaviour for SSL +# ----------------------------------------------------------------------------- +*/ + +#ifndef SSLSERVER_H_ +#define SSLSERVER_H_ + +#include <QtCore/QList> +#include <QtNetwork/QTcpServer> +#include <QtNetwork/QSslError> + +class QSslSocket; + +class SslServer : public QTcpServer +{ + Q_OBJECT + +private Q_SLOTS: + void sslErrors ( const QList<QSslError> & errors ); + +public: + SslServer(); + virtual ~SslServer(); + + bool hasPendingConnections (); + // This one has to return a TcpSocket as we're overwriting from the base class + // just cast it to QSslSocket later + virtual QTcpSocket* nextPendingConnection(); + +protected: + void incomingConnection(int socketDescriptor); + void timerEvent (QTimerEvent* event); + QList<QSslSocket*> _pending; + QList<QSslSocket*> _delete; + int _tmr; +}; + +#endif /* SSLSERVER_H_ */ |