net

package
v0.5.6 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2020 License: MIT Imports: 21 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")
)
View Source
var (
	BindLocal   = false // TODO(geoah) refactor to remove global
	BindPrivate = false // TODO(geoah) refactor to remove global

)
View Source
var UseUPNP = false

Functions

func GetAddresses

func GetAddresses(protocol string, l net.Listener) []string

GetAddresses returns the addresses the transport is listening to

func GetLocalPeerAddresses

func GetLocalPeerAddresses(port int) ([]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 added in v0.3.2

func (c *Connection) Close() error

func (*Connection) LocalAddr added in v0.4.0

func (c *Connection) LocalAddr() string

func (*Connection) RemoteAddr added in v0.4.0

func (c *Connection) RemoteAddr() string

type Middleware

type Middleware interface {
	Handle() MiddlewareHandler
}

Middleware ...

type MiddlewareHandler

type MiddlewareHandler func(ctx context.Context,
	conn *Connection) (*Connection, error)

MiddlewareHandler ...

type Network

type Network interface {
	Dial(ctx context.Context, peer *peer.Peer) (*Connection, error)
	Listen(ctx context.Context) (chan *Connection, error)

	AddMiddleware(handler MiddlewareHandler)
	AddTransport(tag string, tsp Transport)
}

Network interface

func New

func New(discover discovery.Discoverer, local *peer.LocalPeer) (Network, error)

New creates a new p2p network using an address book

type Transport

type Transport interface {
	Dial(ctx context.Context, address string) (*Connection, error)
	Listen(ctx context.Context) (chan *Connection, error)
}

func NewTCPTransport

func NewTCPTransport(
	local *peer.LocalPeer,
	address string,
) Transport

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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