dialer

package
v0.0.0-...-249e25c Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2025 License: AGPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RPCClientRetries = 3
	RPCClientBackoff = 2
	RPCClientDelay   = time.Second
	RPCClientTimeout = 10 * time.Second
)

Variables

This section is empty.

Functions

func VPNCertificate

func VPNCertificate(ctx context.Context) *certificate.Certificate

VPNCertificate ...

Types

type DHTHostAddrPublisher

type DHTHostAddrPublisher struct {
	Key  *key.Key
	Salt []byte
}

func (*DHTHostAddrPublisher) Publish

func (p *DHTHostAddrPublisher) Publish(ctx context.Context, node *vpn.Node, addr *HostAddr) error

Publish ...

type DHTHostAddrResolver

type DHTHostAddrResolver struct {
	Key  []byte
	Salt []byte
}

func (*DHTHostAddrResolver) Resolve

func (r *DHTHostAddrResolver) Resolve(ctx context.Context, node *vpn.Node) (*HostAddr, error)

Resolve ...

type Dialer

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

Dialer ...

func NewDialer

func NewDialer(
	logger *zap.Logger,
	vpn *vpn.Host,
	key *key.Key,
) *Dialer

NewDialer ...

func (*Dialer) Client

func (t *Dialer) Client(ctx context.Context, networkKey, key, salt []byte) (*RPCClient, error)

Client ...

func (*Dialer) ClientDialer

func (t *Dialer) ClientDialer(ctx context.Context, networkKey []byte, resolver HostAddrResolver) (rpc.Dialer, error)

ClientDialer ...

func (*Dialer) ClientWithHostAddr

func (t *Dialer) ClientWithHostAddr(ctx context.Context, networkKey []byte, hostID kademlia.ID, port uint16) (*RPCClient, error)

ClientWithHostAddr ...

func (*Dialer) RemoveNetwork

func (t *Dialer) RemoveNetwork(network *networkv1.Network)

RemoveNetwork ...

func (*Dialer) ReplaceOrInsertNetwork

func (t *Dialer) ReplaceOrInsertNetwork(network *networkv1.Network)

ReplaceOrInsertNetwork ...

func (*Dialer) Server

func (t *Dialer) Server(ctx context.Context, networkKey []byte, key *key.Key, salt []byte) (*rpc.Server, error)

Server ...

func (*Dialer) ServerDialer

func (t *Dialer) ServerDialer(ctx context.Context, networkKey []byte, port uint16, publisher HostAddrPublisher) (rpc.Dialer, error)

ServerDialer ...

func (*Dialer) ServerWithHostAddr

func (t *Dialer) ServerWithHostAddr(ctx context.Context, networkKey []byte, port uint16) (*rpc.Server, error)

ServerWithHostAddr ...

type HostAddr

type HostAddr struct {
	HostID kademlia.ID
	Port   uint16
}

HostAddr ...

type HostAddrPublisher

type HostAddrPublisher interface {
	Publish(ctx context.Context, node *vpn.Node, addr *HostAddr) error
}

type HostAddrResolver

type HostAddrResolver interface {
	Resolve(ctx context.Context, node *vpn.Node) (*HostAddr, error)
}

type RPCClient

type RPCClient struct {
	rpc.Caller
	// contains filtered or unexported fields
}

func NewRPCClient

func NewRPCClient(logger *zap.Logger, dialer rpc.Dialer) (*RPCClient, error)

func (*RPCClient) Close

func (c *RPCClient) Close()

type StaticHostAddrResolver

type StaticHostAddrResolver struct {
	HostAddr
}

func (*StaticHostAddrResolver) Resolve

func (r *StaticHostAddrResolver) Resolve(ctx context.Context, node *vpn.Node) (*HostAddr, error)

type VPNCertFunc

type VPNCertFunc func() *certificate.Certificate

VPNCertFunc ...

type VPNDialer

type VPNDialer struct {
	Logger   *zap.Logger
	Node     *vpn.Node
	Resolver HostAddrResolver
	CertFunc VPNCertFunc
}

VPNDialer ...

func (*VPNDialer) Dial

func (d *VPNDialer) Dial(ctx context.Context, dispatcher rpc.Dispatcher) (rpc.Transport, error)

Dial ...

type VPNServerDialer

type VPNServerDialer struct {
	Logger    *zap.Logger
	Node      *vpn.Node
	Port      uint16
	Publisher HostAddrPublisher
	CertFunc  VPNCertFunc
}

VPNServerDialer ...

func (*VPNServerDialer) Dial

func (d *VPNServerDialer) Dial(ctx context.Context, dispatcher rpc.Dispatcher) (rpc.Transport, error)

Dial ...

type VPNTransport

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

VPNTransport ...

func (*VPNTransport) Call

func (t *VPNTransport) Call(call *rpc.CallOut, fn rpc.ResponseFunc) error

Call ...

func (*VPNTransport) HandleMessage

func (t *VPNTransport) HandleMessage(msg *vpn.Message) error

HandleMessage ...

func (*VPNTransport) Listen

func (t *VPNTransport) Listen() error

Listen ...

Jump to

Keyboard shortcuts

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