fix(p2p): handle multiple socket errors #1777
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1773
This changes the peer socket error handling to use
on
instead ofonce
when listening forerror
events to ensure that an unexpected seconderror
event doesn't crash xud after theonce
handler stops listening. Instead we useon
to listen to all error events and then manually remove all listeners from the socket after it's destroyed.This also adds a callback to handle errors from the
socket.write
function when sending packets to peers. Previously we would not specify a callback at all, and errors would only get handled by the genericsocket.on('error')
event handler.