aboutsummaryrefslogtreecommitdiff
path: root/test/functional/test_framework/mininode.py
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2017-10-17 15:56:12 -0400
committerJohn Newbery <john@johnnewbery.com>2017-11-28 12:47:02 -0500
commite9dfa9bccc5cbb6096c60498651b451297f0a931 (patch)
treed5579409c9cef4ca156693b5f4eb2b71684b8780 /test/functional/test_framework/mininode.py
parentdad596fc37c8733ab806a0aa4224ac437d37aee5 (diff)
downloadbitcoin-e9dfa9bccc5cbb6096c60498651b451297f0a931.tar.xz
[tests] Move version message sending from NodeConn to NodeConnCB
This commit moves the logic that sends a version message on connection from NodeConn to NodeConnCB. NodeConn should not be aware of the semantics or meaning of the P2P payloads.
Diffstat (limited to 'test/functional/test_framework/mininode.py')
-rwxr-xr-xtest/functional/test_framework/mininode.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/test/functional/test_framework/mininode.py b/test/functional/test_framework/mininode.py
index 09a382c727..c580d99c79 100755
--- a/test/functional/test_framework/mininode.py
+++ b/test/functional/test_framework/mininode.py
@@ -75,7 +75,7 @@ class NodeConn(asyncore.dispatcher):
def __init__(self):
super().__init__(map=mininode_socket_map)
- def peer_connect(self, dstaddr, dstport, net="regtest", services=NODE_NETWORK|NODE_WITNESS, send_version=True):
+ def peer_connect(self, dstaddr, dstport, net="regtest"):
self.dstaddr = dstaddr
self.dstport = dstport
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -86,16 +86,6 @@ class NodeConn(asyncore.dispatcher):
self.network = net
self.disconnect = False
- if send_version:
- # stuff version msg into sendbuf
- vt = msg_version()
- vt.nServices = services
- vt.addrTo.ip = self.dstaddr
- vt.addrTo.port = self.dstport
- vt.addrFrom.ip = "0.0.0.0"
- vt.addrFrom.port = 0
- self.send_message(vt, True)
-
logger.info('Connecting to Bitcoin Node: %s:%d' % (self.dstaddr, self.dstport))
try:
@@ -279,6 +269,19 @@ class NodeConnCB(NodeConn):
# The network services received from the peer
self.nServices = 0
+ def peer_connect(self, *args, services=NODE_NETWORK|NODE_WITNESS, send_version=True, **kwargs):
+ super().peer_connect(*args, **kwargs)
+
+ if send_version:
+ # Send a version msg
+ vt = msg_version()
+ vt.nServices = services
+ vt.addrTo.ip = self.dstaddr
+ vt.addrTo.port = self.dstport
+ vt.addrFrom.ip = "0.0.0.0"
+ vt.addrFrom.port = 0
+ self.send_message(vt, True)
+
# Message receiving methods
def on_message(self, message):