aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/peer_error.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-05-26 20:06:00 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-05-26 20:06:00 +0800
commit245f30c59b8550300c3f0e8bd8e080cd88fcae98 (patch)
tree289c0a15c974e1e4d69d98952ed4b4965898856f /p2p/peer_error.go
parentfd38ea414998ba0307b5f2b8e9f1d9d1b281f294 (diff)
parent9e1fd70b50dc2f545b0875bb06c93f6ccfa8962a (diff)
downloaddexon-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.go56
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
}