network

package
v0.0.0-...-f0ebf03 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2022 License: GPL-3.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MessageTypeUndefined = MessageType(iota)
	MessageTypeOK
	MessageTypeStopConnectionOnYourSide
	MessageTypeDontReconnect
	MessageTypeCustom
)

Variables

View Source
var (
	ErrPeerNotFound      = e.New(`peer not found`)
	ErrMessageTooShort   = e.New(`message too short`)
	ErrMessageTooLong    = e.New(`message too long`)
	ErrUnexpectedMessage = e.New(`unexpected message`)
	ErrNetworkIsNil      = e.New(`network is nil`)
)

Functions

func FixOSSettings

func FixOSSettings() error

Types

type AddrInfo

type AddrInfo = peer.AddrInfo

type KnownPeer

type KnownPeer struct {
	ID       p2ppeer.ID
	SitSpots []*KnownPeerSitSpot
}

type KnownPeerSitSpot

type KnownPeerSitSpot struct {
	Addresses map[string]time.Time
}

type KnownPeers

type KnownPeers map[p2ppeer.ID]*KnownPeer

func (KnownPeers) MarshalJSON

func (peers KnownPeers) MarshalJSON() ([]byte, error)

func (KnownPeers) Reset

func (peers KnownPeers) Reset() error

func (*KnownPeers) UnmarshalJSON

func (peers *KnownPeers) UnmarshalJSON(b []byte) error

type Logger

type Logger interface {
	Error(...interface{})
	Infof(string, ...interface{})
	Debugf(string, ...interface{})
}

type MessageType

type MessageType uint8

type Network

type Network struct {
	// contains filtered or unexported fields
}

func New

func New(networkName string, psk []byte, cacheDir string, agreeToBeRelay bool, logger Logger, streamHandlers ...StreamHandler) (mesh *Network, err error)

func (*Network) Close

func (mesh *Network) Close() (err error)

func (*Network) ClosePeer

func (mesh *Network) ClosePeer(peerID peer.ID)

func (*Network) ConnectPeer

func (mesh *Network) ConnectPeer(peerID peer.ID)

func (*Network) HandlePeerFound

func (mesh *Network) HandlePeerFound(addrInfo peer.AddrInfo)

this method is called by the IPFS Discovery service directly.

func (*Network) IsIncomingStream

func (mesh *Network) IsIncomingStream(peerID peer.ID) *bool

func (*Network) NewStream

func (mesh *Network) NewStream(peerID peer.ID, protocolID p2pprotocol.ID) (stream Stream, err error)

func (*Network) SendBroadcastMessage

func (mesh *Network) SendBroadcastMessage(topic string, msg []byte) (err error)

func (*Network) SendMessage

func (mesh *Network) SendMessage(peerID peer.ID, topic string, msg []byte) (err error)

func (*Network) SetMessageHandler

func (mesh *Network) SetMessageHandler(topic string, handler func(Stream, []byte))

type Stream

type Stream = p2pcore.Stream

type StreamHandler

type StreamHandler interface {
	SetNetwork(network *Network)

	ProtocolID() protocol.ID

	NewIncomingStream(stream Stream, peerAddr AddrInfo)
	ConsiderKnownPeer(peerAddr AddrInfo)
	OnPeerConnect(peer.ID)

	SetID(id peer.ID)
	SetPrivateKey(privKey ed25519.PrivateKey)
	SetPSK(psk []byte)
	SetMyAddrs(addrs []multiaddr.Multiaddr)

	IsBadAddress(maddr multiaddr.Multiaddr) bool

	Start() error
	Close() error
}

Jump to

Keyboard shortcuts

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