network

package
v0.0.0-...-129f1c8 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2019 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServiceID_undefined = ServiceID(iota)
	ServiceID_internal
	ServiceID_vpn
	ServiceID_proxy
	ServiceID_term
	ServiceID_fs
	ServiceID_view

	ServiceIDMax
)

Variables

View Source
var (
	ErrMyselfNotFound = errors.New("Not found myself in the peers list")
	ErrNotReady       = errors.New("Not ready")
)
View Source
var (
	ErrServiceHandlerDefined = errors.New("a service handler is defined, you cannot read data this way")
)

Functions

func NewBuffer

func NewBuffer() *buffer

func ParsePeersFromFile

func ParsePeersFromFile(filePath string) (result models.Peers, err error)

func SavePeersToFile

func SavePeersToFile(filePath string, peers models.Peers) error

Types

type Connector

type Connector interface {
	NewConnection(peerLocal, peerRemote *models.PeerT) (net.Conn, error)
}

type Handler

type Handler interface {
	Handle(authorID uint32, payload []byte) error
}

type Hooker

type Hooker interface {
	OnHomenetClose()
	OnHomenetUpdatePeers(models.Peers) error
	OnHomenetConnectPeer(peer iface.Peer) error
}

type Logger

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

type MessageHeaders

type MessageHeaders struct {
	AuthorID      uint32
	DesignationID uint32
	ServiceID     ServiceID
}

func NewMessageHeaders

func NewMessageHeaders() *MessageHeaders

func (*MessageHeaders) Release

func (hdr *MessageHeaders) Release()

func (*MessageHeaders) Reset

func (hdr *MessageHeaders) Reset()

type Network

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

func New

func New(connector Connector, logger Logger) (*Network, error)

func (*Network) AddHooker

func (homenet *Network) AddHooker(newHooker Hooker)

func (*Network) Close

func (homenet *Network) Close()

func (*Network) GetDirectConnectionTo

func (homenet *Network) GetDirectConnectionTo(peer iface.Peer) io.ReadWriteCloser

func (*Network) GetIdentity

func (homenet *Network) GetIdentity() *secureio.Identity

func (*Network) GetPathTo

func (homenet *Network) GetPathTo(peer iface.Peer) *Path

func (*Network) GetPeerByIntAlias

func (homenet *Network) GetPeerByIntAlias(peerIntAlias uint32) *models.PeerT

func (*Network) GetPeerID

func (homenet *Network) GetPeerID() string

func (*Network) GetPeerIntAlias

func (homenet *Network) GetPeerIntAlias() (r uint32)

func (*Network) GetPeers

func (homenet *Network) GetPeers() models.Peers

func (*Network) GetPipeTo

func (homenet *Network) GetPipeTo(peer iface.Peer, serviceID ServiceID) io.ReadWriter

func (*Network) RemoveHooker

func (homenet *Network) RemoveHooker(removeHooker Hooker)

func (*Network) SetConnector

func (homenet *Network) SetConnector(connector Connector)

func (*Network) SetServiceHandler

func (homenet *Network) SetServiceHandler(serviceID ServiceID, handler Handler)

func (*Network) UpdatePeers

func (homenet *Network) UpdatePeers(peers models.Peers) (err error)

type Path

type Path struct {
	Designation iface.Peer
	NextHop     *Router
}

func NewPath

func NewPath(designation iface.Peer, nextHop *Router) *Path

func (*Path) Close

func (path *Path) Close() error

func (*Path) GetReadWriter

func (path *Path) GetReadWriter(serviceID ServiceID) *pathReadWriter

func (*Path) IsValid

func (path *Path) IsValid() bool

func (*Path) ServiceRead

func (path *Path) ServiceRead(serviceID ServiceID, b []byte) error

func (*Path) ServiceWrite

func (path *Path) ServiceWrite(serviceID ServiceID, b []byte) error

type ReadItem

type ReadItem struct {
	MessageHeaders MessageHeaders
	Data           []byte
}

func NewReadItem

func NewReadItem() *ReadItem

func (*ReadItem) Release

func (item *ReadItem) Release()

func (*ReadItem) Reset

func (item *ReadItem) Reset()

func (*ReadItem) Write

func (item *ReadItem) Write(b []byte) (int, error)

type Router

type Router struct {
	Network        *Network
	Peer           iface.Peer
	RealConnection io.ReadWriteCloser
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter(network *Network, peer iface.Peer, realConn io.ReadWriteCloser) *Router

func (*Router) Close

func (router *Router) Close() error

func (*Router) IsClosed

func (router *Router) IsClosed() bool

func (*Router) MessageRead

func (router *Router) MessageRead(serviceID ServiceID, authorID uint32, payload []byte) error

func (*Router) MessageWrite

func (router *Router) MessageWrite(serviceID ServiceID, designationID uint32, payload []byte) error

type ServiceID

type ServiceID uint16

Jump to

Keyboard shortcuts

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