@@ -53,7 +53,9 @@ def run_test(self):
53
53
self .test_checksum ()
54
54
self .test_size ()
55
55
self .test_msgtype ()
56
- self .test_large_inv ()
56
+ self .test_oversized_inv_msg ()
57
+ self .test_oversized_getdata_msg ()
58
+ self .test_oversized_headers_msg ()
57
59
self .test_resource_exhaustion ()
58
60
59
61
def test_buffer (self ):
@@ -122,20 +124,22 @@ def test_msgtype(self):
122
124
conn .sync_with_ping (timeout = 1 )
123
125
self .nodes [0 ].disconnect_p2ps ()
124
126
125
- def test_large_inv (self ):
126
- self .log .info ("Test oversized inv/getdata/headers messages are logged as misbehaving" )
127
- conn = self .nodes [0 ].add_p2p_connection (P2PInterface ())
128
- with self .nodes [0 ].assert_debug_log (['Misbehaving' , '(0 -> 20): inv message size = 50001' ]):
129
- msg = msg_inv ([CInv (MSG_TX , 1 )] * 50001 )
130
- conn .send_and_ping (msg )
131
- with self .nodes [0 ].assert_debug_log (['Misbehaving' , '(20 -> 40): getdata message size = 50001' ]):
132
- msg = msg_getdata ([CInv (MSG_TX , 1 )] * 50001 )
133
- conn .send_and_ping (msg )
134
- with self .nodes [0 ].assert_debug_log (['Misbehaving' , '(40 -> 60): headers message size = 2001' ]):
135
- msg = msg_headers ([CBlockHeader ()] * 2001 )
136
- conn .send_and_ping (msg )
127
+ def test_oversized_msg (self , msg , size ):
128
+ msg_type = msg .msgtype .decode ('ascii' )
129
+ self .log .info ("Test {} message of size {} is logged as misbehaving" .format (msg_type , size ))
130
+ with self .nodes [0 ].assert_debug_log (['Misbehaving' , '{} message size = {}' .format (msg_type , size )]):
131
+ self .nodes [0 ].add_p2p_connection (P2PInterface ()).send_and_ping (msg )
137
132
self .nodes [0 ].disconnect_p2ps ()
138
133
134
+ def test_oversized_inv_msg (self ):
135
+ self .test_oversized_msg (msg_inv ([CInv (MSG_TX , 1 )] * 50001 ), 50001 )
136
+
137
+ def test_oversized_getdata_msg (self ):
138
+ self .test_oversized_msg (msg_getdata ([CInv (MSG_TX , 1 )] * 50001 ), 50001 )
139
+
140
+ def test_oversized_headers_msg (self ):
141
+ self .test_oversized_msg (msg_headers ([CBlockHeader ()] * 2001 ), 2001 )
142
+
139
143
def test_resource_exhaustion (self ):
140
144
self .log .info ("Test node stays up despite many large junk messages" )
141
145
conn = self .nodes [0 ].add_p2p_connection (P2PDataStore ())
0 commit comments