Skip to content

Commit dddd1ac

Browse files
author
MacroFake
committed
net: Set relay in version msg to peers with relay permission
1 parent 914c000 commit dddd1ac

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

src/net_processing.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ void PeerManagerImpl::PushNodeVersion(CNode& pnode, const Peer& peer)
13831383
CService addr_you = addr.IsRoutable() && !IsProxy(addr) && addr.IsAddrV1Compatible() ? addr : CService();
13841384
uint64_t your_services{addr.nServices};
13851385

1386-
const bool tx_relay = !m_ignore_incoming_txs && !pnode.IsBlockOnlyConn() && !pnode.IsFeelerConn();
1386+
const bool tx_relay{!RejectIncomingTxs(pnode)};
13871387
m_connman.PushMessage(&pnode, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::VERSION, PROTOCOL_VERSION, my_services, nTime,
13881388
your_services, addr_you, // Together the pre-version-31402 serialization of CAddress "addrYou" (without nTime)
13891389
my_services, CService(), // Together the pre-version-31402 serialization of CAddress "addrMe" (without nTime)
@@ -5224,6 +5224,7 @@ bool PeerManagerImpl::RejectIncomingTxs(const CNode& peer) const
52245224
{
52255225
// block-relay-only peers may never send txs to us
52265226
if (peer.IsBlockOnlyConn()) return true;
5227+
if (peer.IsFeelerConn()) return true;
52275228
// In -blocksonly mode, peers need the 'relay' permission to send txs to us
52285229
if (m_ignore_incoming_txs && !peer.HasPermission(NetPermissionFlags::Relay)) return true;
52295230
return false;

test/functional/p2p_blocksonly.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def blocksonly_mode_tests(self):
5757
second_peer = self.nodes[0].add_p2p_connection(P2PInterface())
5858
peer_1_info = self.nodes[0].getpeerinfo()[0]
5959
assert_equal(peer_1_info['permissions'], ['relay'])
60+
assert_equal(first_peer.relay, 1)
6061
peer_2_info = self.nodes[0].getpeerinfo()[1]
6162
assert_equal(peer_2_info['permissions'], ['relay'])
6263
assert_equal(self.nodes[0].testmempoolaccept([tx_hex])[0]['allowed'], True)

test/functional/test_framework/p2p.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ def on_version(self, message):
446446
self.send_message(msg_sendaddrv2())
447447
self.send_message(msg_verack())
448448
self.nServices = message.nServices
449+
self.relay = message.relay
449450
self.send_message(msg_getaddr())
450451

451452
# Connection helper methods

0 commit comments

Comments
 (0)