• Jeffrey Wilcke's avatar
    whisper: fixed broadcast race · 5f0a4416
    Jeffrey Wilcke authored
    Whisper's expire and broadcast loops happen in two separate go routines.
    Whenever an envelope is being expired it's removed from the set of
    envelopes and it looses all information about the envelope, including
    the "known hash". After the envelope has been removed it can be
    re-accepted by a broadcasting peer putting back the envelope in the set
    of envelopes. Since the envelope broadcast loop is separate of the
    expire loop expired messages may be broadcast to other peer, resulting
    in messages **never** being dropped.
    
    This PR includes an expire check before adding new messages to the set
    of envelopes.
    5f0a4416
Name
Last commit
Last update
Godeps Loading commit data...
_data Loading commit data...
accounts Loading commit data...
build Loading commit data...
cmd Loading commit data...
common Loading commit data...
compression/rle Loading commit data...
core Loading commit data...
crypto Loading commit data...
docker Loading commit data...
errs Loading commit data...
eth Loading commit data...
ethdb Loading commit data...
event Loading commit data...
generators Loading commit data...
jsre Loading commit data...
logger Loading commit data...
metrics Loading commit data...
miner Loading commit data...
p2p Loading commit data...
params Loading commit data...
pow Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
tests Loading commit data...
trie Loading commit data...
whisper Loading commit data...
xeth Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...