X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fremotepeer.cpp;h=31783dc0e56244fc267f9b297c0b1510af9b3e90;hp=e8fa578d90f6bb0b001acef2954f4bee8288f408;hb=c194ed5fb3d15e14b9364f9796d3521910dc72fe;hpb=1cb02004ee5973b89368bd84f234d4652794690d diff --git a/src/common/remotepeer.cpp b/src/common/remotepeer.cpp index e8fa578d..31783dc0 100644 --- a/src/common/remotepeer.cpp +++ b/src/common/remotepeer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -39,7 +39,7 @@ RemotePeer::RemotePeer(::AuthHandler *authHandler, QTcpSocket *socket, Compresso : Peer(authHandler, parent), _socket(socket), _compressor(new Compressor(socket, level, this)), - _signalProxy(0), + _signalProxy(nullptr), _heartBeatTimer(new QTimer(this)), _heartBeatCount(0), _lag(0), @@ -91,6 +91,22 @@ QString RemotePeer::description() const return QString(); } +QString RemotePeer::address() const +{ + if (socket()) + return socket()->peerAddress().toString(); + + return QString(); +} + +quint16 RemotePeer::port() const +{ + if (socket()) + return socket()->peerPort(); + + return 0; +} + ::SignalProxy *RemotePeer::signalProxy() const { @@ -105,8 +121,8 @@ void RemotePeer::setSignalProxy(::SignalProxy *proxy) if (!proxy) { _heartBeatTimer->stop(); - disconnect(signalProxy(), 0, this, 0); - _signalProxy = 0; + disconnect(signalProxy(), nullptr, this, nullptr); + _signalProxy = nullptr; if (isOpen()) close(); } @@ -192,8 +208,15 @@ void RemotePeer::close(const QString &reason) void RemotePeer::onReadyRead() { QByteArray msg; - while (readMessage(msg)) + while (readMessage(msg)) { + if (SignalProxy::current()) + SignalProxy::current()->setSourcePeer(this); + processMessage(msg); + + if (SignalProxy::current()) + SignalProxy::current()->setSourcePeer(nullptr); + } }