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 "cleanerconfig.h"
CleanerServer::CleanerServer(): config(0)
CleanerServer::CleanerServer(): config(0), blockConnection(false)
{
config = new CleanerConfig;
@@ -36,9 +36,11 @@ CleanerServer::~CleanerServer()
void CleanerServer::newCon()
{
if(!tcpSocket->isOpen()) {
if(!blockConnection) {
tcpSocket = tcpServer->nextPendingConnection();
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());
}
void CleanerServer::socketStateChanged(QAbstractSocket::SocketState state) {
qDebug() << "Socket state changed to: " << QAbstractSocket::UnconnectedState;
if(state == QAbstractSocket::UnconnectedState) blockConnection = false;
}
void CleanerServer::refreshConfig() {
config->fillBuffer();