functions

package
v0.20.1 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2023 License: Apache-2.0 Imports: 54 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ACK - acknowledgement signal for MQ
	ACK = 1
	// DONE - done signal for MQ
	DONE = 2
	// CheckInInterval - interval in minutes for mq checkins
	CheckInInterval = 1
)
View Source
const MQTimeout = 30

MQTimeout - time out for mqtt connections

View Source
const MinVersion = "v0.18.0"

Variables

View Source
var (
	ServerSet        = make(map[string]mqtt.Client)
	ProxyManagerChan = make(chan *models.HostPeerUpdate, 50)
)
View Source
var All mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
	logger.Log(0, "default message handler -- received message but not handling")
	logger.Log(0, "topic: "+string(msg.Topic()))
}

All -- mqtt message hander for all ('#') topics

Functions

func BoxDecrypt

func BoxDecrypt(encrypted []byte, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error)

BoxDecrypt - decrypts traffic box

func BoxEncrypt

func BoxEncrypt(message []byte, recipientPubKey *[32]byte, senderPrivateKey *[32]byte) ([]byte, error)

BoxEncrypt - encrypts traffic box

func ChangeProxyStatus

func ChangeProxyStatus(status bool) error

ChangeProxyStatus - updates proxy status on host and publishes global host update

func Checkin

func Checkin(ctx context.Context, wg *sync.WaitGroup)

Checkin -- go routine that checks for public or local ip changes, publishes changes

if there are no updates, simply "pings" the server as a checkin

func Chunk

func Chunk(message []byte, recipientPubKey *[32]byte, senderPrivateKey *[32]byte) ([]byte, error)

Chunk - chunks a message and encrypts each chunk

func Connect

func Connect(network string) error

Connect will attempt to connect a node on given network

func Daemon

func Daemon()

Daemon runs netclient daemon

func DeChunk

func DeChunk(chunkedMsg []byte, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error)

DeChunk - "de" chunks and decrypts a message

func Disconnect

func Disconnect(network string) error

Disconnect disconnects a node from the given network

func GetLocalListenPort

func GetLocalListenPort(ifacename string) (int, error)

GetLocalListenPort - Gets the port running on the local interface

func GetNodePeers

func GetNodePeers(node config.Node) ([]wgtypes.PeerConfig, error)

GetNodePeers returns the peers for a given node

func HostPeerUpdate

func HostPeerUpdate(client mqtt.Client, msg mqtt.Message)

HostPeerUpdate - mq handler for host peer update peers/host/<HOSTID>/<SERVERNAME>

func HostUpdate

func HostUpdate(client mqtt.Client, msg mqtt.Message)

HostUpdate - mq handler for host update host/update/<HOSTID>/<SERVERNAME>

func HttpServer added in v0.19.0

func HttpServer(ctx context.Context, wg *sync.WaitGroup)

func Install

func Install() error

Install - installs binary/daemon

func IsVersionComptatible

func IsVersionComptatible(ver string) bool

IsVersionCompatible checks that the version passed is compabtible (>=) with MinVersion

func LeaveNetwork

func LeaveNetwork(network string, isDaemon bool) ([]error, error)

LeaveNetwork - client exits a network

func List

func List(net string, long bool)

List - list network details for specified networks long flag passed passed to cmd line will list additional details about network including peers

func Migrate

func Migrate()

Migrate update data from older versions of netclient to new format TODO fix it

func NodeUpdate

func NodeUpdate(client mqtt.Client, msg mqtt.Message)

NodeUpdate -- mqtt message handler for /update/<NodeID> topic

func PublishGlobalHostUpdate

func PublishGlobalHostUpdate(hostAction models.HostMqAction) error

PublishGlobalHostUpdate - publishes host updates to all the servers host is registered.

func PublishHostUpdate

func PublishHostUpdate(server string, hostAction models.HostMqAction) error

PublishHostUpdate - publishes host updates to server

func PublishNodeUpdate

func PublishNodeUpdate(node *config.Node) error

PublishNodeUpdate -- pushes node to broker

func Pull

func Pull() error

Pull - pulls the latest config from the server, if manual it will overwrite

func Register added in v0.18.2

func Register(token string) error

Register - should be simple to register with a token

func RegisterWithSSO added in v0.18.7

func RegisterWithSSO(registerData *RegisterSSO) (err error)

RegisterWithSSO - register with user credentials with a netmaker server

func RemoveServer

func RemoveServer(node *config.Node)

RemoveServer - removes a server from server conf given a specific node

func SelfUpdate

func SelfUpdate(currentVersion string, rebootDaemon bool)

SelfUpdate updates the netclient binary in place to the latest release available on GitHub and reboots the daemon if update is successful All binary names must adhere to the format `netclient-{platform}-{architecture}`

func SetupRouter added in v0.19.0

func SetupRouter() *gin.Engine

SetupRoute - sets routes for http server

func Uninstall

func Uninstall() ([]error, error)

Uninstall - uninstalls networks from client

func UpdateHostSettings

func UpdateHostSettings() error

UpdateHostSettings - checks local host settings, if different, mod config and publish

func UpdateKeys

func UpdateKeys() error

UpdateKeys -- updates private key and returns new publickey

func UseVersion

func UseVersion(version string, rebootDaemon bool) error

UseVersion switches the current netclient version to the one specified if available in the github releases page

Types

type Network added in v0.19.0

type Network struct {
	Node   config.Node
	Server config.Server
}

type RegisterSSO added in v0.18.7

type RegisterSSO struct {
	API         string
	User        string
	Pass        string
	Network     string
	UsingSSO    bool
	AllNetworks bool
}

RegisterSSO - payload to register via SSO

Jump to

Keyboard shortcuts

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