libricochet-go/utils/error.go

57 lines
2.0 KiB
Go
Raw Normal View History

package utils
2017-05-02 23:33:51 +00:00
import (
"fmt"
)
// Error captures various common ricochet errors
type Error string
func (e Error) Error() string { return string(e) }
// Defining Versions
const (
VersionNegotiationError = Error("VersionNegotiationError")
VersionNegotiationFailed = Error("VersionNegotiationFailed")
RicochetConnectionClosed = Error("RicochetConnectionClosed")
RicochetProtocolError = Error("RicochetProtocolError")
UnknownChannelTypeError = Error("UnknownChannelTypeError")
UnauthorizedChannelTypeError = Error("UnauthorizedChannelTypeError")
UnexpectedChannelResultError = Error("UnexpectedChannelResultError")
2017-05-02 23:33:51 +00:00
// Timeout Errors
2017-05-02 23:33:51 +00:00
ActionTimedOutError = Error("ActionTimedOutError")
PeerTimedOutError = Error("PeerTimedOutError")
2017-05-02 23:33:51 +00:00
// Authentication Errors
ClientFailedToAuthenticateError = Error("ClientFailedToAuthenticateError")
ServerRejectedClientConnectionError = Error("ServerRejectedClientConnectionError")
UnauthorizedActionError = Error("UnauthorizedActionError")
ChannelClosedByPeerError = Error("ChannelClosedByPeerError")
// Channel Management Errors
ServerAttemptedToOpenEvenNumberedChannelError = Error("ServerAttemptedToOpenEvenNumberedChannelError")
ClientAttemptedToOpenOddNumberedChannelError = Error("ClientAttemptedToOpenOddNumberedChannelError")
ChannelIDIsAlreadyInUseError = Error("ChannelIDIsAlreadyInUseError")
AttemptToOpenMoreThanOneSingletonChannelError = Error("AttemptToOpenMoreThanOneSingletonChannelError")
// Library Use Errors
OnionAddressGenerationError = Error("OnionAddressGenerationError")
2018-05-09 19:40:07 +00:00
PrivateKeyNotSetError = Error("PrivateKeyNotSet")
// Connection Errors
ConnectionClosedError = Error("ConnectionClosedError")
2017-05-02 23:33:51 +00:00
)
2016-11-08 23:04:11 +00:00
// CheckError is a helper function for panicing on errors which we need to handle
// but should be very rare e.g. failures deserializing a protobuf object that
// should only happen if there was a bug in the underlying library.
func CheckError(err error) {
if err != nil {
panic(fmt.Sprintf("%v", err))
}
}