- 17 4月, 2015 1 次提交
-
-
由 Felix Lange 提交于
The dial timer was not reset properly when the peer count reached MaxPeers.
-
- 14 4月, 2015 2 次提交
-
-
由 obscuren 提交于
-
由 Felix Lange 提交于
-
- 13 4月, 2015 4 次提交
-
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
removePeer can be called even after listenLoop and dialLoop have returned.
-
由 Felix Lange 提交于
Peer.readLoop will only terminate if the connection is closed. Fix the hang by closing the connection before waiting for readLoop to terminate. This also removes the british disconnect procedure where we're waiting for the remote end to close the connection. I have confirmed with @subtly that cpp-ethereum doesn't adhere to it either.
-
由 Felix Lange 提交于
This regression was introduced in b3c058a9.
-
- 10 4月, 2015 9 次提交
-
-
由 Felix Lange 提交于
This is supposed to apply some back pressure so Server is not accepting more connections than it can actually handle. The current limit is 50. This doesn't really need to be configurable, but we'll see how it behaves in our test nodes and adjust accordingly.
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
As of this commit, p2p will disconnect nodes directly after the encryption handshake if too many peer connections are active. Errors in the protocol handshake packet are now handled more politely by sending a disconnect packet before closing the connection.
-
由 Felix Lange 提交于
netWrapper already sets a read deadline in ReadMsg.
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
There were multiple synchronization issues in the disconnect handling, all caused by the odd special-casing of Peer.readLoop errors. Remove the special handling of read errors and make readLoop part of the Peer WaitGroup. Thanks to @Gustav-Simonsson for pointing at arrows in a diagram and playing rubber-duck.
-
由 Felix Lange 提交于
This commit introduces a new (temporary) peer selection strategy based on random lookups. While we're here, also implement the TODOs in dialLoop.
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
-
- 07 4月, 2015 1 次提交
-
-
由 obscuren 提交于
-
- 01 4月, 2015 3 次提交
-
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
This a fix for an attack vector where the discovery protocol could be used to amplify traffic in a DDOS attack. A malicious actor would send a findnode request with the IP address and UDP port of the target as the source address. The recipient of the findnode packet would then send a neighbors packet (which is 16x the size of findnode) to the victim. Our solution is to require a 'bond' with the sender of findnode. If no bond exists, the findnode packet is not processed. A bond between nodes α and β is created when α replies to a ping from β. This (initial) version of the bonding implementation might still be vulnerable against replay attacks during the expiration time window. We will add stricter source address validation later.
-
由 Felix Lange 提交于
The primary motivation for doing this right now is that old PoC 8 nodes and newer PoC 9 nodes keep discovering each other, causing handshake failures.
-
- 24 3月, 2015 1 次提交
-
-
由 zelig 提交于
-
- 20 3月, 2015 1 次提交
-
-
由 obscuren 提交于
-
- 19 3月, 2015 4 次提交
-
-
由 Felix Lange 提交于
This is better because protocols might not actually read the payload for some errors (msg too big, etc.) which can be a pain to test with the old behaviour.
-
由 Felix Lange 提交于
This helps a lot with debugging.
-
由 Felix Lange 提交于
Message encoding functions have been renamed to catch any uses. The switch to the new encoder can cause subtle incompatibilities. If there are any users outside of our tree, they will at least be alerted that there was a change. NewMsg no longer exists. The replacements for EncodeMsg are called Send and SendItems.
-
由 Felix Lange 提交于
-
- 16 3月, 2015 1 次提交
-
-
由 obscuren 提交于
-
- 15 3月, 2015 1 次提交
-
-
由 zelig 提交于
-
- 12 3月, 2015 1 次提交
-
-
由 Taylor Gerring 提交于
-
- 10 3月, 2015 1 次提交
-
-
由 Taylor Gerring 提交于
-
- 04 3月, 2015 10 次提交
-
-
由 Felix Lange 提交于
It is unused and untested right now. We can bring it back later if required.
-
由 Felix Lange 提交于
Until chunked frames are implemented we cannot send messages with a size overflowing uint24.
-
由 Felix Lange 提交于
They got lost in the transition to rlpxFrameRW.
-
由 Felix Lange 提交于
With RLPx frames, the message code is contained in the frame and is no longer part of the encoded data. EncodeMsg, Msg.Decode have been updated to match. Code that decodes RLP directly from Msg.Payload will need to change.
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
This mostly changes how information is passed around. Instead of using many function parameters and return values, put the entire state in a struct and pass that. This also adds back derivation of ecdhe-shared-secret. I deleted it by accident in a previous refactoring.
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
-
由 Felix Lange 提交于
-