good morning!!!!

Skip to content
Snippets Groups Projects
Select Git revision
  • 982c812e81304cad835796d4fa3d67c8f08141b6
  • master default protected
  • v0.2.16-candidate
  • shivam/rpcAddBorTx
  • default-cli-config
  • shivam/minerRecommitFix
  • vcastellm/pos-296-bump-go-version-in-bor-and-heimdall
  • shivam/ethstats-backend-fix
  • v0.2.16-beta1-candidate
  • v0.2.15-beta3-candidate
  • shivam/newCli-IPC
  • v0.3.0-dev
  • checkpoint-whitelist-master
  • shivam/codecov
  • jdkanani/fix-typo-log
  • shivam/hardcoded-spans-v0.2.14
  • shivam/hardcoded-spans
  • shivam/fast-state-sync
  • shivam/fast-state-sync-master
  • gethv1.10.15-merge
  • fix-txpool-2
  • v0.2.14-tmp-span-hotfix
  • v0.2.15-beta2
  • v0.2.15-beta1
  • v0.3.0-beta3
  • v0.3.0-beta2
  • v0.3.0-beta1
  • v0.2.14
  • v0.2.13
  • v0.2.13-beta2
  • v0.2.13-beta1
  • v0.2.12
  • v0.2.12-beta3
  • v0.2.12-beta1
  • v0.2.12-beta2
  • v0.2.11
  • v0.2.10
  • v0.2.10-beta2
  • v0.2.9
  • v0.2.9-beta1
  • v0.2.8
41 results

fees.go

Blame
  • Forked from github / maticnetwork / bor
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    peer_error.go 2.82 KiB
    // Copyright 2014 The go-ethereum Authors
    // This file is part of the go-ethereum library.
    //
    // The go-ethereum library is free software: you can redistribute it and/or modify
    // it under the terms of the GNU Lesser General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // The go-ethereum library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    // GNU Lesser General Public License for more details.
    //
    // You should have received a copy of the GNU Lesser General Public License
    // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    
    package p2p
    
    import (
    	"fmt"
    )
    
    const (
    	errInvalidMsgCode = iota
    	errInvalidMsg
    )
    
    var errorToString = map[int]string{
    	errInvalidMsgCode: "invalid message code",
    	errInvalidMsg:     "invalid message",
    }
    
    type peerError struct {
    	code    int
    	message string
    }
    
    func newPeerError(code int, format string, v ...interface{}) *peerError {
    	desc, ok := errorToString[code]
    	if !ok {
    		panic("invalid error code")
    	}
    	err := &peerError{code, desc}
    	if format != "" {
    		err.message += ": " + fmt.Sprintf(format, v...)
    	}
    	return err
    }
    
    func (self *peerError) Error() string {
    	return self.message
    }
    
    type DiscReason uint
    
    const (
    	DiscRequested DiscReason = iota
    	DiscNetworkError
    	DiscProtocolError
    	DiscUselessPeer
    	DiscTooManyPeers
    	DiscAlreadyConnected
    	DiscIncompatibleVersion
    	DiscInvalidIdentity
    	DiscQuitting
    	DiscUnexpectedIdentity
    	DiscSelf
    	DiscReadTimeout
    	DiscSubprotocolError = 0x10
    )
    
    var discReasonToString = [...]string{
    	DiscRequested:           "Disconnect requested",
    	DiscNetworkError:        "Network error",
    	DiscProtocolError:       "Breach of protocol",
    	DiscUselessPeer:         "Useless peer",
    	DiscTooManyPeers:        "Too many peers",
    	DiscAlreadyConnected:    "Already connected",
    	DiscIncompatibleVersion: "Incompatible P2P protocol version",
    	DiscInvalidIdentity:     "Invalid node identity",
    	DiscQuitting:            "Client quitting",
    	DiscUnexpectedIdentity:  "Unexpected identity",
    	DiscSelf:                "Connected to self",
    	DiscReadTimeout:         "Read timeout",
    	DiscSubprotocolError:    "Subprotocol error",
    }
    
    func (d DiscReason) String() string {
    	if len(discReasonToString) < int(d) {
    		return fmt.Sprintf("Unknown Reason(%d)", d)
    	}
    	return discReasonToString[d]
    }
    
    func (d DiscReason) Error() string {
    	return d.String()
    }
    
    func discReasonForError(err error) DiscReason {
    	if reason, ok := err.(DiscReason); ok {
    		return reason
    	}
    	peerError, ok := err.(*peerError)
    	if ok {
    		switch peerError.code {
    		case errInvalidMsgCode, errInvalidMsg:
    			return DiscProtocolError
    		default:
    			return DiscSubprotocolError
    		}
    	}
    	return DiscSubprotocolError
    }