Handle rateLimitingCode packet (#1852)
This commit is contained in:
parent
9c2c08d44c
commit
46b05c7478
17
waku/waku.go
17
waku/waku.go
|
@ -955,7 +955,8 @@ func (w *Waku) runMessageLoop(p *Peer, rw p2p.MsgReadWriter) error {
|
||||||
}
|
}
|
||||||
case batchAcknowledgedCode:
|
case batchAcknowledgedCode:
|
||||||
if err := w.handleBatchAcknowledgeCode(p, packet, logger); err != nil {
|
if err := w.handleBatchAcknowledgeCode(p, packet, logger); err != nil {
|
||||||
|
logger.Warn("failed to handle batchAcknowledgedCode message, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
case powRequirementCode:
|
case powRequirementCode:
|
||||||
if err := w.handlePowRequirementCode(p, packet, logger); err != nil {
|
if err := w.handlePowRequirementCode(p, packet, logger); err != nil {
|
||||||
|
@ -967,6 +968,10 @@ func (w *Waku) runMessageLoop(p *Peer, rw p2p.MsgReadWriter) error {
|
||||||
logger.Warn("failed to decode bloom filter exchange message, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
logger.Warn("failed to decode bloom filter exchange message, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
case rateLimitingCode:
|
||||||
|
if err := w.handleRateLimitingCode(p, packet, logger); err != nil {
|
||||||
|
logger.Warn("failed to decode rate limits, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
||||||
|
}
|
||||||
case p2pMessageCode:
|
case p2pMessageCode:
|
||||||
if err := w.handleP2PMessageCode(p, packet, logger); err != nil {
|
if err := w.handleP2PMessageCode(p, packet, logger); err != nil {
|
||||||
logger.Warn("failed to decode direct message, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
logger.Warn("failed to decode direct message, peer will be disconnected", zap.Binary("peer", peerID[:]), zap.Error(err))
|
||||||
|
@ -1073,6 +1078,16 @@ func (w *Waku) handleBloomFilterExCode(p *Peer, packet p2p.Msg, logger *zap.Logg
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (w *Waku) handleRateLimitingCode(p *Peer, packet p2p.Msg, logger *zap.Logger) error {
|
||||||
|
var rateLimits RateLimits
|
||||||
|
if err := packet.Decode(&rateLimits); err != nil {
|
||||||
|
logger.Warn("invalid rate limits information", zap.Binary("peerID", p.peer.ID().Bytes()), zap.Error(err))
|
||||||
|
return errors.New("invalid rate limits exchange message")
|
||||||
|
}
|
||||||
|
p.setRateLimits(rateLimits)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (w *Waku) handleP2PMessageCode(p *Peer, packet p2p.Msg, logger *zap.Logger) error {
|
func (w *Waku) handleP2PMessageCode(p *Peer, packet p2p.Msg, logger *zap.Logger) error {
|
||||||
// peer-to-peer message, sent directly to peer bypassing PoW checks, etc.
|
// peer-to-peer message, sent directly to peer bypassing PoW checks, etc.
|
||||||
// this message is not supposed to be forwarded to other peers, and
|
// this message is not supposed to be forwarded to other peers, and
|
||||||
|
|
Loading…
Reference in New Issue