p2p

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2022 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckPort

func CheckPort(target ma.Multiaddr) error

checkPort checks whether target multiaddr contains tcp or udp protocol and whether the port is equal to 0

Types

type Listener

type Listener interface {
	Protocol() protocol.ID
	ListenAddress() ma.Multiaddr
	TargetAddress() ma.Multiaddr
	// contains filtered or unexported methods
}

Listener listens for connections and proxies them to a target

type Listeners

type Listeners struct {
	sync.RWMutex

	Listeners map[string]Listener
}

Listeners manages a group of Listener implementations, checking for conflicts and optionally dispatching connections

func (*Listeners) Close

func (r *Listeners) Close(matchFunc func(listener Listener) bool) int

func (*Listeners) Register

func (r *Listeners) Register(l Listener) error

Register registers listenerInfo into this registry and starts it

type P2P

type P2P struct {
	ListenersLocal *Listeners
	ListenersP2P   *Listeners
	Streams        *StreamRegistry
	// contains filtered or unexported fields
}

P2P structure holds information on currently running streams/Listeners

func New

func New(identity peer.ID, peerHost p2phost.Host, peerstore pstore.Peerstore) *P2P

New creates new P2P struct

func (*P2P) CheckProtoExists

func (p2p *P2P) CheckProtoExists(proto string) bool

CheckProtoExists checks whether a proto handler is registered to mux handler

func (*P2P) ForwardRemote

func (p2p *P2P) ForwardRemote(ctx context.Context, proto protocol.ID, addr ma.Multiaddr, reportRemote bool) (Listener, error)

ForwardRemote creates new p2p listener

type Stream

type Stream struct {
	Protocol protocol.ID

	OriginAddr ma.Multiaddr
	TargetAddr ma.Multiaddr

	Local  manet.Conn
	Remote net.Stream

	Registry *StreamRegistry
	// contains filtered or unexported fields
}

Stream holds information on active incoming and outgoing p2p streams.

type StreamRegistry

type StreamRegistry struct {
	sync.Mutex

	Streams map[uint64]*Stream

	ifconnmgr.ConnManager
	// contains filtered or unexported fields
}

StreamRegistry is a collection of active incoming and outgoing proto app streams.

func (*StreamRegistry) Close

func (r *StreamRegistry) Close(s *Stream)

Close stream endpoints and deregister it

func (*StreamRegistry) Deregister

func (r *StreamRegistry) Deregister(streamID uint64)

Deregister deregisters stream from the registry

func (*StreamRegistry) Register

func (r *StreamRegistry) Register(streamInfo *Stream)

Register registers a stream to the registry

func (*StreamRegistry) Reset

func (r *StreamRegistry) Reset(s *Stream)

Reset closes stream endpoints and deregisters it

Jump to

Keyboard shortcuts

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