2009-07-18 20:39:31 +00:00
|
|
|
#include "cleanerserver.h"
|
|
|
|
|
|
|
|
|
|
#include <QtNetwork>
|
|
|
|
|
#include <QtCore>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
#include "messagefilter.h"
|
2009-07-19 23:14:27 +00:00
|
|
|
#include "cleanerconfig.h"
|
2009-07-18 20:39:31 +00:00
|
|
|
|
2009-07-19 23:14:27 +00:00
|
|
|
CleanerServer::CleanerServer(): config(0)
|
2009-07-18 20:39:31 +00:00
|
|
|
{
|
2009-07-19 23:14:27 +00:00
|
|
|
config = new CleanerConfig;
|
|
|
|
|
|
|
|
|
|
myMessageFilter = new MessageFilter(config);
|
|
|
|
|
tcpServer = new QTcpServer();
|
|
|
|
|
tcpServer->setMaxPendingConnections(1);
|
|
|
|
|
|
|
|
|
|
if (!tcpServer->listen(QHostAddress(QString::fromUtf8(config->readConfigString("HostAddress").c_str())), config->readConfigInt("DefaultListenPort")) ) {
|
|
|
|
|
qDebug() << QString("Unable to start the server: %1.").arg(tcpServer->errorString());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
qDebug() << QString("The server is running on port %1.").arg(tcpServer->serverPort());
|
2009-07-18 20:39:31 +00:00
|
|
|
|
2009-07-19 23:14:27 +00:00
|
|
|
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newCon()));
|
|
|
|
|
|
|
|
|
|
refreshConfig();
|
2009-07-18 20:39:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CleanerServer::~CleanerServer()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CleanerServer::newCon()
|
|
|
|
|
{
|
|
|
|
|
tcpSocket = tcpServer->nextPendingConnection();
|
|
|
|
|
connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(onRead()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CleanerServer::onRead()
|
|
|
|
|
{
|
2009-07-19 23:14:27 +00:00
|
|
|
char buf[1024];
|
2009-07-18 20:39:31 +00:00
|
|
|
tcpSocket->readLine(buf, sizeof(buf));
|
|
|
|
|
QString message = QString::fromUtf8("%1").arg(buf);
|
2009-07-19 23:14:27 +00:00
|
|
|
|
|
|
|
|
// TESTING DEFAULT VALUES
|
|
|
|
|
QString nick = "PlayerNick";
|
|
|
|
|
unsigned playerId = 1;
|
|
|
|
|
// TESTING DEFAULT VALUES
|
|
|
|
|
|
|
|
|
|
QString checkMessage = myMessageFilter->check(playerId, nick, message);
|
2009-07-18 20:39:31 +00:00
|
|
|
tcpSocket->write(checkMessage.toAscii().data(), checkMessage.length());
|
|
|
|
|
}
|
2009-07-19 23:14:27 +00:00
|
|
|
|
|
|
|
|
void CleanerServer::refreshConfig() {
|
|
|
|
|
|
|
|
|
|
// config->fillBuffer();
|
|
|
|
|
myMessageFilter->refreshConfig();
|
|
|
|
|
}
|