/** * @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(); }
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(); }); }
/** * @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(); }
/** * @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(); }