From 7bd681fd44ed10f76fedb2c1d60acff927532af5 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Wed, 10 Nov 2010 19:47:36 +0000 Subject: [PATCH] Cache the remote address string in the client. This is because we need to use it as the client's name even after the client has been disconnected and the socket is closed. svn path=/trunk/KDE/kdenetwork/krfb/; revision=1195307 --- krfb/rfbclient.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/krfb/rfbclient.cpp b/krfb/rfbclient.cpp index fe18d55..17a834c 100644 --- a/krfb/rfbclient.cpp +++ b/krfb/rfbclient.cpp @@ -37,11 +37,15 @@ struct RfbClient::Private bool controlEnabled; rfbClientPtr client; QSocketNotifier *notifier; + QString remoteAddressString; }; RfbClient::RfbClient(rfbClientPtr client, QObject* parent) : QObject(parent), d(new Private(client)) { + d->remoteAddressString = peerAddress(d->client->sock) + ":" + + QString::number(peerPort(d->client->sock)); + d->notifier = new QSocketNotifier(client->sock, QSocketNotifier::Read, this); d->notifier->setEnabled(false); connect(d->notifier, SIGNAL(activated(int)), this, SLOT(onSocketActivated())); @@ -55,7 +59,7 @@ RfbClient::~RfbClient() QString RfbClient::name() const { - return peerAddress(d->client->sock) + ":" + QString::number(peerPort(d->client->sock)); + return d->remoteAddressString; } //static