diff options
| author | Cory Fields <[email protected]> | 2017-02-08 01:04:53 -0500 |
|---|---|---|
| committer | Cory Fields <[email protected]> | 2017-02-13 18:55:35 -0500 |
| commit | cbfc5a6728d389fbb15e0555cdf50f1b04595106 (patch) | |
| tree | 81dc1e8af09985a0bb8ec094af118261cd84c595 /src/test/DoS_tests.cpp | |
| parent | net: parse reject earlier (diff) | |
| download | discoin-cbfc5a6728d389fbb15e0555cdf50f1b04595106.tar.xz discoin-cbfc5a6728d389fbb15e0555cdf50f1b04595106.zip | |
net: require a verack before responding to anything else
7a8c251901 made this logic hard to follow. After that change, messages would
not be sent to a peer via SendMessages() before the handshake was complete, but
messages could still be sent as a response to an incoming message.
For example, if a peer had not yet sent a verack, we wouldn't notify it about
new blocks, but we would respond to a PING with a PONG.
This change makes the behavior straightforward: until we've received a verack,
never send any message other than version/verack/reject.
The behavior until a VERACK is received has always been undefined, this change
just tightens our policy.
This also makes testing much easier, because we can now connect but not send
version/verack, and anything sent to us is an error.
Diffstat (limited to 'src/test/DoS_tests.cpp')
0 files changed, 0 insertions, 0 deletions