modernize: Use '= default' instead of empty ctor/dtor bodies
[quassel.git] / src / common / remotepeer.cpp
index 01b3962..31783dc 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 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);
+    }
 }