From e5aa38cb0f846cde3e0d70e751cfa6d53a889e99 Mon Sep 17 00:00:00 2001 From: zelig Date: Fri, 5 Dec 2014 21:14:55 +0000 Subject: initial commit for eth-p2p integration --- eth/error.go | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 eth/error.go (limited to 'eth/error.go') diff --git a/eth/error.go b/eth/error.go new file mode 100644 index 000000000..cb4459435 --- /dev/null +++ b/eth/error.go @@ -0,0 +1,73 @@ +package eth + +import ( + "fmt" + // "github.com/ethereum/go-ethereum/logger" +) + +const ( + ErrMsgTooLarge = iota + ErrDecode + ErrInvalidMsgCode + ErrProtocolVersionMismatch + ErrNetworkIdMismatch + ErrGenesisBlockMismatch + ErrNoStatusMsg + ErrExtraStatusMsg + ErrInvalidBlock +) + +var errorToString = map[int]string{ + ErrMsgTooLarge: "Message too long", + ErrDecode: "Invalid message", + ErrInvalidMsgCode: "Invalid message code", + ErrProtocolVersionMismatch: "Protocol version mismatch", + ErrNetworkIdMismatch: "NetworkId mismatch", + ErrGenesisBlockMismatch: "Genesis block mismatch", + ErrNoStatusMsg: "No status message", + ErrExtraStatusMsg: "Extra status message", + ErrInvalidBlock: "Invalid block", +} + +type protocolError struct { + Code int + fatal bool + message string + format string + params []interface{} + // size int +} + +func newProtocolError(code int, format string, params ...interface{}) *protocolError { + return &protocolError{Code: code, format: format, params: params} +} + +func ProtocolError(code int, format string, params ...interface{}) (err *protocolError) { + err = newProtocolError(code, format, params...) + // report(err) + if err.Fatal() { + logger.Errorln(err) + } else { + logger.Debugln(err) + } + return +} + +func (self protocolError) Error() (message string) { + message = self.message + if message == "" { + message, ok := errorToString[self.Code] + if !ok { + panic("invalid error code") + } + if self.format != "" { + message += ": " + fmt.Sprintf(self.format, self.params...) + } + self.message = message + } + return +} + +func (self *protocolError) Fatal() bool { + return self.fatal +} -- cgit v1.2.3 From eb5cb04aa991d59a6597479fbddf5dec51093ed6 Mon Sep 17 00:00:00 2001 From: zelig Date: Tue, 9 Dec 2014 23:54:02 +0000 Subject: no logging in error (to be refactored into p2p) --- eth/error.go | 6 ------ 1 file changed, 6 deletions(-) (limited to 'eth/error.go') diff --git a/eth/error.go b/eth/error.go index cb4459435..9355d6457 100644 --- a/eth/error.go +++ b/eth/error.go @@ -2,7 +2,6 @@ package eth import ( "fmt" - // "github.com/ethereum/go-ethereum/logger" ) const ( @@ -45,11 +44,6 @@ func newProtocolError(code int, format string, params ...interface{}) *protocolE func ProtocolError(code int, format string, params ...interface{}) (err *protocolError) { err = newProtocolError(code, format, params...) // report(err) - if err.Fatal() { - logger.Errorln(err) - } else { - logger.Debugln(err) - } return } -- cgit v1.2.3 From 3308d82b234f93dbba80d332e495dcf157aacbe8 Mon Sep 17 00:00:00 2001 From: zelig Date: Sun, 14 Dec 2014 18:07:05 +0000 Subject: add protocol error types specific to blockpool --- eth/error.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'eth/error.go') diff --git a/eth/error.go b/eth/error.go index 9355d6457..d1daad575 100644 --- a/eth/error.go +++ b/eth/error.go @@ -14,6 +14,8 @@ const ( ErrNoStatusMsg ErrExtraStatusMsg ErrInvalidBlock + ErrInvalidPoW + ErrUnrequestedBlock ) var errorToString = map[int]string{ @@ -26,6 +28,8 @@ var errorToString = map[int]string{ ErrNoStatusMsg: "No status message", ErrExtraStatusMsg: "Extra status message", ErrInvalidBlock: "Invalid block", + ErrInvalidPoW: "Invalid PoW", + ErrUnrequestedBlock: "Unrequested block", } type protocolError struct { -- cgit v1.2.3 From 6abf8ef78f1474fdeb7a6a6ce084bf994cc055f2 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 5 Jan 2015 17:10:42 +0100 Subject: Merge --- eth/error.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'eth/error.go') diff --git a/eth/error.go b/eth/error.go index d1daad575..1d9f80638 100644 --- a/eth/error.go +++ b/eth/error.go @@ -52,18 +52,17 @@ func ProtocolError(code int, format string, params ...interface{}) (err *protoco } func (self protocolError) Error() (message string) { - message = self.message - if message == "" { - message, ok := errorToString[self.Code] + if len(message) == 0 { + var ok bool + self.message, ok = errorToString[self.Code] if !ok { panic("invalid error code") } if self.format != "" { - message += ": " + fmt.Sprintf(self.format, self.params...) + self.message += ": " + fmt.Sprintf(self.format, self.params...) } - self.message = message } - return + return self.message } func (self *protocolError) Fatal() bool { -- cgit v1.2.3 From 8ecc9509b3ac490fe8ac9d91e24e8271963ee443 Mon Sep 17 00:00:00 2001 From: zelig Date: Fri, 9 Jan 2015 06:03:32 +0000 Subject: add ErrInsufficientChainInfo error --- eth/error.go | 2 ++ 1 file changed, 2 insertions(+) (limited to 'eth/error.go') diff --git a/eth/error.go b/eth/error.go index 1d9f80638..9c4a68481 100644 --- a/eth/error.go +++ b/eth/error.go @@ -16,6 +16,7 @@ const ( ErrInvalidBlock ErrInvalidPoW ErrUnrequestedBlock + ErrInsufficientChainInfo ) var errorToString = map[int]string{ @@ -30,6 +31,7 @@ var errorToString = map[int]string{ ErrInvalidBlock: "Invalid block", ErrInvalidPoW: "Invalid PoW", ErrUnrequestedBlock: "Unrequested block", + ErrInsufficientChainInfo: "Insufficient chain info", } type protocolError struct { -- cgit v1.2.3