X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fpeer.cpp;h=c076806f3c3d3eca134055de859baf29381716cc;hp=3785326cc106f7f61d13b0afb6d9d487854a2699;hb=be23c0c48e37617eebe0be0eb2ea5c6246dc8170;hpb=c878493af33f5d01e07360bebdbe06131ded5015 diff --git a/src/common/peer.cpp b/src/common/peer.cpp index 3785326c..c076806f 100644 --- a/src/common/peer.cpp +++ b/src/common/peer.cpp @@ -34,20 +34,23 @@ AuthHandler *Peer::authHandler() const } -// Note that we need to use a fixed-size integer instead of uintptr_t, in order -// to avoid issues with different architectures for client and core. -// In practice, we'll never really have to restore the real value of a PeerPtr from -// a QVariant. +// PeerPtr is used in RPC signatures for enabling receivers to send replies +// to a particular peer rather than broadcast to all connected ones. +// To enable this, the SignalProxy transparently replaces the bogus value +// received over the network with the actual address of the local Peer +// instance. Because the actual value isn't needed on the wire, it is +// serialized as null. QDataStream &operator<<(QDataStream &out, PeerPtr ptr) { - out << reinterpret_cast(ptr); + Q_UNUSED(ptr); + out << static_cast(0); // 64 bit for historic reasons return out; } QDataStream &operator>>(QDataStream &in, PeerPtr &ptr) { + ptr = nullptr; quint64 value; in >> value; - ptr = reinterpret_cast(value); return in; }