3.1.5.2 MSG_BLKLIST Response Received
On receiving a MSG_BLKLIST (section 2.2.5.2) response message from a server, the client MUST verify that it is well-formed and corresponds to a GetBlockList request message (MSG_GETBLKLIST (section 2.2.4.2)) in its Outstanding Request List. The client then performs the following checks:
The client SHOULD verify if the segment ID matches any request in the Outstanding Request List. If the client performs the segment ID check, it MUST silently discard the MSG_BLKLIST message and abort the exchange if the segment ID does not match the segment ID of any request.<11>
The client MUST check if the block ranges overlap with the ranges specified in any request with a matching segment ID in the Outstanding Request List. The client MUST silently discard the MSG_BLKLIST message and abort the exchange if the check fails.
If this verification is successful, then the peer MUST do the following:
Delete the corresponding request message from the Outstanding Request List, and cancel its Request Timer.
Return the segment ID and block range from the MSG_BLKLIST message, as well as the server address, to the higher-layer applications.
Otherwise, the response message MUST be silently discarded.