eth/protocols/eth: fix return early when and skips tracker.Fulfil

This commit is contained in:
Weixie Cui 2026-05-13 01:31:20 +08:00
parent 934a0091fa
commit 0536e03e62

View file

@ -632,12 +632,7 @@ func handleTransactions(backend Backend, msg Decoder, peer *Peer) error {
} }
func handlePooledTransactions(backend Backend, msg Decoder, peer *Peer) error { func handlePooledTransactions(backend Backend, msg Decoder, peer *Peer) error {
// Transactions arrived, make sure we have a valid and fresh chain to handle them // always accept the response, even if we don't have a valid chain, to allow the peer to update its tracker and avoid timeouts
if !backend.AcceptTxs() {
return nil
}
// Check against request and decode.
var resp PooledTransactionsPacket var resp PooledTransactionsPacket
if err := msg.Decode(&resp); err != nil { if err := msg.Decode(&resp); err != nil {
return err return err
@ -651,6 +646,10 @@ func handlePooledTransactions(backend Backend, msg Decoder, peer *Peer) error {
return fmt.Errorf("PooledTransactions: %w", err) return fmt.Errorf("PooledTransactions: %w", err)
} }
if !backend.AcceptTxs() {
return nil
}
return backend.Handle(peer, &resp) return backend.Handle(peer, &resp)
} }