diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-26 20:06:00 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-26 20:06:00 +0800 |
commit | 245f30c59b8550300c3f0e8bd8e080cd88fcae98 (patch) | |
tree | 289c0a15c974e1e4d69d98952ed4b4965898856f /p2p/peer_error.go | |
parent | fd38ea414998ba0307b5f2b8e9f1d9d1b281f294 (diff) | |
parent | 9e1fd70b50dc2f545b0875bb06c93f6ccfa8962a (diff) | |
download | dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar.gz dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar.bz2 dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar.lz dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar.xz dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.tar.zst dexon-245f30c59b8550300c3f0e8bd8e080cd88fcae98.zip |
Merge pull request #1014 from fjl/p2p-dialer-3000
p2p: new dialer, peer management without locks
Diffstat (limited to 'p2p/peer_error.go')
-rw-r--r-- | p2p/peer_error.go | 56 |
1 files changed, 12 insertions, 44 deletions
diff --git a/p2p/peer_error.go b/p2p/peer_error.go index a912f6064..6938a9801 100644 --- a/p2p/peer_error.go +++ b/p2p/peer_error.go @@ -5,39 +5,17 @@ import ( ) const ( - errMagicTokenMismatch = iota - errRead - errWrite - errMisc - errInvalidMsgCode + errInvalidMsgCode = iota errInvalidMsg - errP2PVersionMismatch - errPubkeyInvalid - errPubkeyForbidden - errProtocolBreach - errPingTimeout - errInvalidNetworkId - errInvalidProtocolVersion ) var errorToString = map[int]string{ - errMagicTokenMismatch: "magic token mismatch", - errRead: "read error", - errWrite: "write error", - errMisc: "misc error", - errInvalidMsgCode: "invalid message code", - errInvalidMsg: "invalid message", - errP2PVersionMismatch: "P2P Version Mismatch", - errPubkeyInvalid: "public key invalid", - errPubkeyForbidden: "public key forbidden", - errProtocolBreach: "protocol Breach", - errPingTimeout: "ping timeout", - errInvalidNetworkId: "invalid network id", - errInvalidProtocolVersion: "invalid protocol version", + errInvalidMsgCode: "invalid message code", + errInvalidMsg: "invalid message", } type peerError struct { - Code int + code int message string } @@ -107,23 +85,13 @@ func discReasonForError(err error) DiscReason { return reason } peerError, ok := err.(*peerError) - if !ok { - return DiscSubprotocolError - } - switch peerError.Code { - case errP2PVersionMismatch: - return DiscIncompatibleVersion - case errPubkeyInvalid: - return DiscInvalidIdentity - case errPubkeyForbidden: - return DiscUselessPeer - case errInvalidMsgCode, errMagicTokenMismatch, errProtocolBreach: - return DiscProtocolError - case errPingTimeout: - return DiscReadTimeout - case errRead, errWrite: - return DiscNetworkError - default: - return DiscSubprotocolError + if ok { + switch peerError.code { + case errInvalidMsgCode, errInvalidMsg: + return DiscProtocolError + default: + return DiscSubprotocolError + } } + return DiscSubprotocolError } |