From 4b34c24cff592b6d26868ddcd78f5d44107165f4 Mon Sep 17 00:00:00 2001 From: Vlad Date: Fri, 9 Feb 2018 15:03:09 +0100 Subject: [PATCH] whisper: fixed full node --- whisper/whisperv6/peer.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/whisper/whisperv6/peer.go b/whisper/whisperv6/peer.go index 7878183f1f..4ef0f3c434 100644 --- a/whisper/whisperv6/peer.go +++ b/whisper/whisperv6/peer.go @@ -54,6 +54,8 @@ func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) *Peer { powRequirement: 0.0, known: set.New(), quit: make(chan struct{}), + bloomFilter: makeFullNodeBloom(), + fullNode: true, } } @@ -229,12 +231,15 @@ func (peer *Peer) bloomMatch(env *Envelope) bool { func (peer *Peer) setBloomFilter(bloom []byte) { peer.bloomFilter = bloom peer.fullNode = isFullNode(bloom) - if peer.fullNode { - if peer.bloomFilter == nil { - peer.bloomFilter = make([]byte, bloomFilterSize) - for i := 0; i < bloomFilterSize; i++ { - peer.bloomFilter[i] = 0xFF - } - } + if peer.fullNode && peer.bloomFilter == nil { + peer.bloomFilter = makeFullNodeBloom() } } + +func makeFullNodeBloom() []byte { + bloom := make([]byte, bloomFilterSize) + for i := 0; i < bloomFilterSize; i++ { + bloom[i] = 0xFF + } + return bloom +}