@@ -175,7 +175,6 @@ to check if the node disconnects after receiving multiple invalid requests.`)
175
175
176
176
// Create request with max uint64 value for a nonexistent block
177
177
badReq := & eth.GetBlockHeadersPacket {
178
- RequestId : uint64 (1 ),
179
178
GetBlockHeadersRequest : & eth.GetBlockHeadersRequest {
180
179
Origin : eth.HashOrNumber {Number : ^ uint64 (0 )},
181
180
Amount : 1 ,
@@ -184,29 +183,22 @@ to check if the node disconnects after receiving multiple invalid requests.`)
184
183
},
185
184
}
186
185
187
- // Send the request 10 times
186
+ // Send request 10 times. Some clients are lient on the first few invalids.
188
187
for i := 0 ; i < 10 ; i ++ {
188
+ badReq .RequestId = uint64 (i )
189
189
if err := conn .Write (ethProto , eth .GetBlockHeadersMsg , badReq ); err != nil {
190
190
if err == errDisc {
191
- t .Logf ("peer disconnected after %d requests" , i + 1 )
192
- return
191
+ t .Fatalf ("peer disconnected after %d requests" , i + 1 )
193
192
}
194
193
t .Fatalf ("write failed: %v" , err )
195
194
}
196
- time .Sleep (10 * time .Millisecond )
197
195
}
198
196
199
- // Check if peer disconnects
197
+ // Check if peer disconnects at the end.
200
198
code , _ , err := conn .Read ()
201
- if err == errDisc {
202
- t .Logf ("peer disconnected after all requests" )
203
- return
199
+ if err == errDisc || code == discMsg {
200
+ t .Fatal ("peer improperly disconnected" )
204
201
}
205
- if code == discMsg {
206
- t .Logf ("received disconnect message" )
207
- return
208
- }
209
- t .Fatalf ("peer did not disconnect after receiving invalid requests" )
210
202
}
211
203
212
204
func (s * Suite ) TestSimultaneousRequests (t * utesting.T ) {
0 commit comments