Documentation ¶
Index ¶
- Constants
- Variables
- func BoxDecrypt(encrypted []byte, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error)
- func BoxEncrypt(message []byte, recipientPubKey *[32]byte, senderPrivateKey *[32]byte) ([]byte, error)
- func Checkin(ctx context.Context, wg *sync.WaitGroup)
- func Chunk(message []byte, recipientPubKey *[32]byte, senderPrivateKey *[32]byte) ([]byte, error)
- func Connect(network string) error
- func Daemon()
- func DeChunk(chunkedMsg []byte, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error)
- func Disconnect(network string) error
- func GetLocalListenPort(ifacename string) (int, error)
- func GetNodePeers(node config.Node) ([]wgtypes.PeerConfig, error)
- func HostPeerUpdate(client mqtt.Client, msg mqtt.Message)
- func HostUpdate(client mqtt.Client, msg mqtt.Message)
- func Install() error
- func IsVersionComptatible(ver string) bool
- func LeaveNetwork(network string, isDaemon bool) ([]error, error)
- func LeaveServer(s string) error
- func List(net string, long bool)
- func ListServers() error
- func Migrate()
- func NodeUpdate(client mqtt.Client, msg mqtt.Message)
- func PublishHostUpdate(server string, hostAction models.HostMqAction) error
- func PublishNodeUpdate(node *config.Node) error
- func Pull(restart bool) (models.HostPull, bool, bool, error)
- func Push(restart bool) error
- func Register(token string) error
- func RegisterWithSSO(registerData *RegisterSSO) (err error)
- func SignalPeer(signal models.Signal) error
- func SwitchServer(server string) error
- func Uninstall() ([]error, error)
- func UpdateHostSettings(fallback bool) error
- func UpdateKeys() error
- func UseVersion(version string, rebootDaemon bool) error
- type RegisterSSO
Constants ¶
const ( TestIPv4 = "1.1.1.1" TestIPv6 = "2606:4700:4700::1111" )
const ( // ACK - acknowledgement signal for MQ ACK = 1 // DONE - done signal for MQ DONE = 2 // CheckInInterval - interval in minutes for mq checkins CheckInInterval = 1 )
const MQTimeout = 30
MQTimeout - time out for mqtt connections
const (
// MQ_TIMEOUT - timeout for MQ
MQ_TIMEOUT = 30
)
const MinVersion = "v0.18.0"
Variables ¶
var All mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { slog.Info("default message handler -- received message but not handling", "topic", msg.Topic()) }
All -- mqtt message hander for all ('#') topics
var ( // LastHandShakeThreshold - threshold for considering inactive connection LastHandShakeThreshold = time.Minute * 3 )
var (
Mqclient mqtt.Client
)
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 Checkin ¶
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 DeChunk ¶
func DeChunk(chunkedMsg []byte, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error)
DeChunk - "de" chunks and decrypts a message
func Disconnect ¶
Disconnect disconnects a node from the given network
func GetLocalListenPort ¶
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 ¶
HostPeerUpdate - mq handler for host peer update peers/host/<HOSTID>/<SERVERNAME>
func HostUpdate ¶
HostUpdate - mq handler for host update host/update/<HOSTID>/<SERVERNAME>
func IsVersionComptatible ¶
IsVersionCompatible checks that the version passed is compabtible (>=) with MinVersion
func LeaveNetwork ¶
LeaveNetwork - client exits a network
func LeaveServer ¶ added in v0.21.0
LeaveServer - leave the named server
func List ¶
List - list network details for specified networks long flag passed passed to cmd line will list additional details about network including peers
func ListServers ¶ added in v0.21.0
func ListServers() error
ListServers - lists all registered servers
func NodeUpdate ¶
NodeUpdate -- mqtt message handler for /update/<NodeID> topic
func PublishHostUpdate ¶
func PublishHostUpdate(server string, hostAction models.HostMqAction) error
PublishHostUpdate - publishes host updates to server
func PublishNodeUpdate ¶
PublishNodeUpdate -- pushes node to broker
func RegisterWithSSO ¶ added in v0.18.7
func RegisterWithSSO(registerData *RegisterSSO) (err error)
RegisterWithSSO - register with user credentials with a netmaker server
func SignalPeer ¶ added in v0.22.0
SignalPeer - signals the peer with host's turn relay endpoint
func SwitchServer ¶ added in v0.20.2
SwitchServer - switches netclient server context
func UpdateHostSettings ¶
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 ¶
UseVersion switches the current netclient version to the one specified if available in the github releases page