net

package
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2020 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrAllAddressesFailed for when a peer cannot be dialed
	ErrAllAddressesFailed = errors.New("all addresses failed to dial")
	// ErrNoAddresses for when a peer has no addresses
	ErrNoAddresses = errors.New("no addresses")
	// ErrNotForUs object is not meant for us
	ErrNotForUs = errors.New("object not for us")
	// ErrMissingKey when a key is not passed
	ErrMissingKey = errors.New("missing key")
	// ErrECDSAPrivateKeyRequired when a key is not an ECDSA key
	ErrECDSAPrivateKeyRequired = errors.New(
		"network currently requires an ecdsa private key",
	)
	// ErrNonce is when the nonce does not match
	ErrNonce = errors.New("nonce does not match")
	// ErrMissingSignature is when the signature is missing
	ErrMissingSignature = errors.New("signature missing")
	// ErrAllAddressesBlocked all peer's addresses are currently blocked
	ErrAllAddressesBlocked = errors.New("all addresses blocked")
)
View Source
var (
	ErrInvalidSignature = errors.Error("invalid signature")
)

Functions

func GetAddresses

func GetAddresses(
	protocol string,
	l net.Listener,
	includeLocal bool,
	includePrivate bool,
	includeIPV6 bool,
) []string

GetAddresses returns the addresses the transport is listening to

func GetLocalPeerAddresses

func GetLocalPeerAddresses(
	port int,
	includeLocal bool,
	includePrivate bool,
	includeIPV6 bool,
) ([]string, error)

GetLocalPeerAddresses returns the addresses TCP can listen to on the local machine

func Read

func Read(conn *Connection) (*object.Object, error)

func Write

func Write(o *object.Object, conn *Connection) error

Types

type Connection

type Connection struct {
	LocalPeerKey  crypto.PublicKey
	RemotePeerKey crypto.PublicKey
	IsIncoming    bool
	// contains filtered or unexported fields
}

func (*Connection) Close

func (c *Connection) Close() error

func (*Connection) LocalAddr

func (c *Connection) LocalAddr() string

func (*Connection) RemoteAddr

func (c *Connection) RemoteAddr() string

type ListenConfig

type ListenConfig struct {
	BindLocal   bool
	BindPrivate bool
	BindIPV6    bool
}

type Listener

type Listener interface {
	Close() error
	Addresses() []string
}

type Network

type Network interface {
	Dial(
		ctx context.Context,
		peer *peer.ConnectionInfo,
	) (*Connection, error)
	Listen(
		ctx context.Context,
		bindAddress string,
		listenConfig *ListenConfig,
	) (Listener, error)
	Accept() (*Connection, error)
	Addresses() []string
}

Network interface

func New

func New(
	local localpeer.LocalPeer,
) Network

New creates a new p2p network

type Transport

type Transport interface {
	Dial(
		ctx context.Context,
		address string,
	) (*Connection, error)
	Listen(
		ctx context.Context,
		bindAddress string,
		key crypto.PrivateKey,
	) (net.Listener, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL