eth/protocols/eth: handle zero-count header requests (#30305)
Proper fix for handling `count=0` get header requests. https://en.wikipedia.org/wiki/Count_Zero
This commit is contained in:
parent
df645e77b7
commit
733fcbbc65
@ -42,6 +42,9 @@ func handleGetBlockHeaders(backend Backend, msg Decoder, peer *Peer) error {
|
|||||||
// ServiceGetBlockHeadersQuery assembles the response to a header query. It is
|
// ServiceGetBlockHeadersQuery assembles the response to a header query. It is
|
||||||
// exposed to allow external packages to test protocol behavior.
|
// exposed to allow external packages to test protocol behavior.
|
||||||
func ServiceGetBlockHeadersQuery(chain *core.BlockChain, query *GetBlockHeadersRequest, peer *Peer) []rlp.RawValue {
|
func ServiceGetBlockHeadersQuery(chain *core.BlockChain, query *GetBlockHeadersRequest, peer *Peer) []rlp.RawValue {
|
||||||
|
if query.Amount == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if query.Skip == 0 {
|
if query.Skip == 0 {
|
||||||
// The fast path: when the request is for a contiguous segment of headers.
|
// The fast path: when the request is for a contiguous segment of headers.
|
||||||
return serviceContiguousBlockHeaderQuery(chain, query)
|
return serviceContiguousBlockHeaderQuery(chain, query)
|
||||||
|
Loading…
Reference in New Issue
Block a user