mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
merge bitcoin#28634: add check for missing garbage terminator detection
This commit is contained in:
parent
65eb194d82
commit
400c9ddd67
@ -148,6 +148,19 @@ class V2TransportTest(BitcoinTestFramework):
|
|||||||
with self.nodes[0].assert_debug_log("V2 transport error: V1 peer with wrong MessageStart"):
|
with self.nodes[0].assert_debug_log("V2 transport error: V1 peer with wrong MessageStart"):
|
||||||
s.sendall(wrong_network_magic_prefix + b"somepayload")
|
s.sendall(wrong_network_magic_prefix + b"somepayload")
|
||||||
|
|
||||||
|
# Check detection of missing garbage terminator (hits after fixed amount of data if terminator never matches garbage)
|
||||||
|
MAX_KEY_GARB_AND_GARBTERM_LEN = 64 + 4095 + 16
|
||||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||||
|
num_peers = len(self.nodes[0].getpeerinfo())
|
||||||
|
s.connect(("127.0.0.1", p2p_port(0)))
|
||||||
|
self.wait_until(lambda: len(self.nodes[0].getpeerinfo()) == num_peers + 1)
|
||||||
|
s.sendall(b'\x00' * (MAX_KEY_GARB_AND_GARBTERM_LEN - 1))
|
||||||
|
self.wait_until(lambda: self.nodes[0].getpeerinfo()[-1]["bytesrecv"] == MAX_KEY_GARB_AND_GARBTERM_LEN - 1)
|
||||||
|
with self.nodes[0].assert_debug_log("V2 transport error: missing garbage terminator"):
|
||||||
|
s.sendall(b'\x00') # send out last byte
|
||||||
|
# should disconnect immediately
|
||||||
|
self.wait_until(lambda: len(self.nodes[0].getpeerinfo()) == num_peers)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
V2TransportTest().main()
|
V2TransportTest().main()
|
||||||
|
Loading…
Reference in New Issue
Block a user