For each address to be relayed we “randomly” pick 2 nodes to send the
address to (in RelayAddress()
). However we do not take into
consideration that it does not make sense to relay the address back to
its originator (CNode::PushAddress()
will do nothing in that case).
This means that if the originator is among the “randomly” picked nodes, then we will relay to one node less than intended.
Fix this by skipping the originating node when choosing candidates to relay to.