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) {
}
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);
}
}
{
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)));
}
}
+void CoreSession::removeClient(QIODevice *iodev) {
+ // no checks for validity check - privateslot...
+ QTcpSocket *socket = qobject_cast<QTcpSocket *>(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;
}
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);
quasselVersion = "0.2.0-alpha5-pre";
quasselDate = "2008-04-01";
- quasselBuild = 679;
+ quasselBuild = 680;
//! Minimum client build number the core needs
clientBuildNeeded = 642;