From: Marcus Eggenberger Date: Tue, 1 Apr 2008 09:51:48 +0000 (+0000) Subject: Made the client disconnection more verbose. And some minor fixes. X-Git-Tag: 0.2.0-alpha5~38 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=444e91f948b435e652205c4d0f1148906e9e86dc;hp=9a36f8e55bfa485467e093fba669841fdfacda2f Made the client disconnection more verbose. And some minor fixes. --- diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index 9078f24a..22e71f13 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -312,9 +312,9 @@ void SignalProxy::removePeer(QIODevice* iodev) { void SignalProxy::removePeerBySender() { // OK we're brutal here... but since it's a private slot we know what we've got connected to it... + // this Slot is not triggered by destroyed, so the object is still alive and can be used! QIODevice *ioDev = (QIODevice *)(sender()); removePeer(ioDev); - qDebug() << "Client disconnected."; } void SignalProxy::objectRenamed(const QString &newname, const QString &oldname) { diff --git a/src/core/core.cpp b/src/core/core.cpp index 8a1c7771..21e7c16f 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -468,7 +468,7 @@ void Core::processClientMessage(QTcpSocket *socket, const QVariantMap &msg) { } reply["MsgType"] = "ClientLoginAck"; SignalProxy::writeDataToDevice(socket, reply); - qDebug() << qPrintable(tr("Client %1 initialized and authentificated successfully as \"%2\".").arg(socket->peerAddress().toString(), msg["User"].toString())); + qDebug() << qPrintable(tr("Client %1 initialized and authentificated successfully as \"%2\" (UserId: %3).").arg(socket->peerAddress().toString(), msg["User"].toString()).arg(uid.toInt())); setupClientSession(socket, uid); } } diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index d71144fb..4003783f 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; } diff --git a/src/core/coresession.h b/src/core/coresession.h index 88fefaff..482fa76a 100644 --- a/src/core/coresession.h +++ b/src/core/coresession.h @@ -150,6 +150,8 @@ signals: void bufferRenamed(BufferId, QString); private slots: + void removeClient(QIODevice *dev); + void recvStatusMsgFromServer(QString msg); void recvMessageFromServer(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); void networkConnected(NetworkId networkid); diff --git a/version.inc b/version.inc index 7b919d65..21224fd2 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-alpha5-pre"; quasselDate = "2008-04-01"; - quasselBuild = 679; + quasselBuild = 680; //! Minimum client build number the core needs clientBuildNeeded = 642;