123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- * Copyright (c)2019 ZeroTier, Inc.
- *
- * Use of this software is governed by the Business Source License included
- * in the LICENSE.TXT file in the project's root directory.
- *
- * Change Date: 2023-01-01
- *
- * On the date above, in accordance with the Business Source License, use
- * of this software will be governed by version 2.0 of the Apache License.
- */
- /****/
- package ztnode
- /*
- // errTypeName returns the type name of an error minus any leading * character.
- func errTypeName(err error) string {
- if err == nil {
- return ""
- }
- et := reflect.TypeOf(err)
- if et.Kind() == reflect.Ptr {
- return et.Elem().Name()
- }
- return et.Name()
- }
- //////////////////////////////////////////////////////////////////////////////
- // Err indicates a general LF error such as an invalid parameter or state.
- type Err string
- func (e Err) Error() string { return (string)(e) }
- // General errors
- const (
- ErrInvalidPublicKey Err = "invalid public key"
- ErrInvalidPrivateKey Err = "invalid private key"
- ErrInvalidParameter Err = "invalid parameter"
- ErrInvalidObject Err = "invalid object"
- ErrUnsupportedType Err = "unsupported type"
- ErrUnsupportedCurve Err = "unsupported ECC curve (for this purpose)"
- ErrOutOfRange Err = "parameter out of range"
- ErrWharrgarblFailed Err = "Wharrgarbl proof of work algorithm failed (out of memory?)"
- ErrIO Err = "I/O error"
- ErrIncorrectKey Err = "incorrect key"
- ErrAlreadyConnected Err = "already connected"
- ErrRecordNotFound Err = "record not found"
- ErrRecordIsNewer Err = "record is newer than timestamp"
- ErrPulseSpanExeceeded Err = "pulse is more than one year after record"
- ErrDuplicateRecord Err = "duplicate record"
- ErrPrivateKeyRequired Err = "private key required"
- ErrInvalidMessageSize Err = "message size invalid"
- ErrQueryRequiresSelectors Err = "query requires at least one selector"
- ErrQueryInvalidSortOrder Err = "invalid sort order value"
- ErrAlreadyMounted Err = "mount point already mounted"
- )
- //////////////////////////////////////////////////////////////////////////////
- // ErrRecord indicates an error related to an invalid record or a record failing a check.
- type ErrRecord string
- func (e ErrRecord) Error() string { return (string)(e) }
- // Errs indicating that a record is invalid
- const (
- ErrRecordInvalid ErrRecord = "record invalid"
- ErrRecordOwnerSignatureCheckFailed ErrRecord = "owner signature check failed"
- ErrRecordInsufficientWork ErrRecord = "insufficient work to pay for this record"
- ErrRecordNotApproved ErrRecord = "record not currently approved (via proof of work and/or certificates)"
- ErrRecordInsufficientLinks ErrRecord = "insufficient links"
- ErrRecordTooManyLinks ErrRecord = "too many links"
- ErrRecordInvalidLinks ErrRecord = "links must be sorted and unique"
- ErrRecordTooManySelectors ErrRecord = "too many selectors"
- ErrRecordUnsupportedAlgorithm ErrRecord = "unsupported algorithm or type"
- ErrRecordTooLarge ErrRecord = "record too large"
- ErrRecordValueTooLarge ErrRecord = "record value too large"
- ErrRecordViolatesSpecialRelativity ErrRecord = "record timestamp too far in the future"
- ErrRecordTooOld ErrRecord = "record older than network timestamp floor"
- ErrRecordCertificateInvalid ErrRecord = "certificate invalid"
- ErrRecordCertificateRequired ErrRecord = "certificate required"
- ErrRecordProhibited ErrRecord = "record administratively prohibited"
- )
- //////////////////////////////////////////////////////////////////////////////
- // ErrDatabase contains information about a database related problem.
- type ErrDatabase struct {
- // ErrCode is the error code returned by the C database module.
- ErrCode int
- // ErrMessage is an error message supplied by the C code or by Go (optional)
- ErrMessage string
- }
- func (e ErrDatabase) Error() string {
- return fmt.Sprintf("database error: %d (%s)", e.ErrCode, e.ErrMessage)
- }
- //////////////////////////////////////////////////////////////////////////////
- // ErrAPI (response) indicates an error and is returned with non-200 responses.
- type ErrAPI struct {
- Code int `` // HTTP response code
- Message string `json:",omitempty"` // Message indicating the reason for the error
- ErrTypeName string `json:",omitempty"` // Name of LF native error or empty if HTTP or transport error
- }
- // Error implements the error interface, making APIError an 'error' in the Go sense.
- func (e ErrAPI) Error() string {
- if len(e.ErrTypeName) > 0 {
- return fmt.Sprintf("%d:%s:%s", e.Code, e.ErrTypeName, e.Message)
- }
- return fmt.Sprintf("%d:%s", e.Code, e.Message)
- }
- //////////////////////////////////////////////////////////////////////////////
- */
|