X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=94cf39eb8fa8bb2a62f4024f74c8b2f099e478cc;hb=9de382b2b2a352bad4a076249f07ae84da94c420;hp=d71144fb4efc3090e28a8730edc733cf3c02609d;hpb=4e0445e459c690cfa6013c5ad574e94f9214827b;p=quassel.git diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index d71144fb..94cf39eb 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -49,7 +49,8 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) { SignalProxy *p = signalProxy(); - + connect(p, SIGNAL(peerRemoved(QIODevice *)), this, SLOT(removeClient(QIODevice *))); + //p->attachSlot(SIGNAL(disconnectFromNetwork(NetworkId)), this, SLOT(disconnectFromNetwork(NetworkId))); // FIXME p->attachSlot(SIGNAL(sendInput(BufferInfo, QString)), this, SLOT(msgFromClient(BufferInfo, QString))); p->attachSignal(this, SIGNAL(displayMsg(Message))); @@ -224,6 +225,17 @@ void CoreSession::addClient(QObject *dev) { // this is QObject* so we can use it } } +void CoreSession::removeClient(QIODevice *iodev) { + // no checks for validity check - privateslot... + QTcpSocket *socket = qobject_cast(iodev); + if(socket) + qDebug() << qPrintable(tr("Client %1 disconnected (UserId: %2).").arg(socket->peerAddress().toString()).arg(user().toInt())); + else + qDebug() << "Local client disconnedted."; + disconnect(socket, 0, this, 0); + socket->deleteLater(); +} + SignalProxy *CoreSession::signalProxy() const { return _signalProxy; } @@ -260,7 +272,7 @@ void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) { if(conn) { conn->userInput(bufinfo, msg); } else { - qWarning() << "Trying to send to unconnected network!"; + qWarning() << "Trying to send to unconnected network:" << msg; } }