Example #1
0
/**
 * @brief Accept or reject new client connection
 */
void MultiServer::newClient()
{
	QTcpSocket *socket = _server->nextPendingConnection();

	logger::info() << "Accepted new client from address" << socket->peerAddress();

	_sessions->addClient(new Client(socket));

	printStatusUpdate();
}
Example #2
0
MultiServer::MultiServer(QObject *parent)
	: QObject(parent),
	_server(0),
	_state(NOT_STARTED),
	_autoStop(false)
{
	_sessions = new SessionServer(this);

	connect(_sessions, SIGNAL(sessionCreated(SessionState*)), this, SLOT(assignRecording(SessionState*)));
	connect(_sessions, SIGNAL(sessionEnded(QString)), this, SLOT(tryAutoStop()));
	connect(_sessions, SIGNAL(userLoggedIn()), this, SLOT(printStatusUpdate()));
	connect(_sessions, &SessionServer::userDisconnected, [this]() {
		printStatusUpdate();
		// The server will be fully stopped after all users have disconnected
		if(_state == STOPPING)
			stop();
		else
			tryAutoStop();
	});
}
Example #3
0
/**
 * @brief Accept or reject new client connection
 */
void MultiServer::newClient()
{
	QTcpSocket *socket = _server->nextPendingConnection();

	logger::info() << "Accepted new client from address" << socket->peerAddress();

	auto *client = new Client(socket);
	_sessions->addClient(client);

	if(_banlist) {
		if(_banlist->isBanned(socket->peerAddress())) {
			logger::info() << "Kicking banned client from address" << socket->peerAddress() << "straight away";
			client->disconnectKick("BANNED");
		}
	}

	printStatusUpdate();
}
Example #4
0
/**
 * @brief Accept or reject new client connection
 */
void MultiServer::newClient()
{
	QTcpSocket *socket = _server->nextPendingConnection();

	if(_banlist) {
		if(_banlist->isBanned(socket->peerAddress())) {
			logger::info() << "Banned client from address" << socket->peerAddress() << "not accepted.";
			socket->disconnectFromHost();
			socket->deleteLater();
			return;
		}
	}

	logger::info() << "Accepted new client from address" << socket->peerAddress();

	_sessions->addClient(new Client(socket));

	printStatusUpdate();
}