chatcleaner: blocking other connections if one client is connected

This commit is contained in:
doitux
2009-07-31 19:54:51 +00:00
parent ea5bf107f4
commit 5ff441419f
2 changed files with 12 additions and 3 deletions
+10 -2
View File
@@ -7,7 +7,7 @@
#include "messagefilter.h" #include "messagefilter.h"
#include "cleanerconfig.h" #include "cleanerconfig.h"
CleanerServer::CleanerServer(): config(0) CleanerServer::CleanerServer(): config(0), blockConnection(false)
{ {
config = new CleanerConfig; config = new CleanerConfig;
@@ -36,9 +36,11 @@ CleanerServer::~CleanerServer()
void CleanerServer::newCon() void CleanerServer::newCon()
{ {
if(!tcpSocket->isOpen()) { if(!blockConnection) {
tcpSocket = tcpServer->nextPendingConnection(); tcpSocket = tcpServer->nextPendingConnection();
connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(onRead())); connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(onRead()));
connect(tcpSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(socketStateChanged(QAbstractSocket::SocketState)));
blockConnection = true;
} }
} }
@@ -57,6 +59,12 @@ void CleanerServer::onRead()
tcpSocket->write(checkMessage.toAscii().data(), checkMessage.length()); tcpSocket->write(checkMessage.toAscii().data(), checkMessage.length());
} }
void CleanerServer::socketStateChanged(QAbstractSocket::SocketState state) {
qDebug() << "Socket state changed to: " << QAbstractSocket::UnconnectedState;
if(state == QAbstractSocket::UnconnectedState) blockConnection = false;
}
void CleanerServer::refreshConfig() { void CleanerServer::refreshConfig() {
config->fillBuffer(); config->fillBuffer();
+2 -1
View File
@@ -17,7 +17,7 @@ public:
private slots: private slots:
void newCon(); void newCon();
void onRead(); void onRead();
void socketStateChanged(QAbstractSocket::SocketState);
void refreshConfig(); void refreshConfig();
private: private:
@@ -27,6 +27,7 @@ private:
MessageFilter *myMessageFilter; MessageFilter *myMessageFilter;
CleanerConfig *config; CleanerConfig *config;
bool blockConnection;
}; };
#endif // CLEANERSERVER_H #endif // CLEANERSERVER_H