NetBirdSDK

package
v0.29.4 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2024 License: BSD-3-Clause Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitializeLog

func InitializeLog(logLevel string, filePath string) error

InitializeLog initializes the log file.

Types

type Auth

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

Auth can register or login new client

func NewAuth

func NewAuth(cfgPath string, mgmURL string) (*Auth, error)

NewAuth instantiate Auth struct and validate the management URL

func NewAuthWithConfig

func NewAuthWithConfig(ctx context.Context, config *internal.Config) *Auth

NewAuthWithConfig instantiate Auth based on existing config

func (*Auth) Login

func (a *Auth) Login() error

func (*Auth) LoginWithSetupKeyAndSaveConfig

func (a *Auth) LoginWithSetupKeyAndSaveConfig(setupKey string, deviceName string) error

LoginWithSetupKeyAndSaveConfig test the connectivity with the management server with the setup key.

func (*Auth) SaveConfigIfSSOSupported

func (a *Auth) SaveConfigIfSSOSupported() (bool, error)

SaveConfigIfSSOSupported test the connectivity with the management server by retrieving the server device flow info. If it returns a flow info than save the configuration and return true. If it gets a codes.NotFound, it means that SSO is not supported and returns false without saving the configuration. For other errors return false.

type Client

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

Client struct manage the life circle of background service

func NewClient

func NewClient(cfgFile, deviceName string, osVersion string, osName string, networkChangeListener NetworkChangeListener, dnsManager DnsManager) *Client

NewClient instantiate a new Client

func (*Client) ClearLoginComplete

func (c *Client) ClearLoginComplete()

func (*Client) DeselectRoute added in v0.27.5

func (c *Client) DeselectRoute(id string) error

func (*Client) GetRoutesSelectionDetails added in v0.27.5

func (c *Client) GetRoutesSelectionDetails() (*RoutesSelectionDetails, error)

func (*Client) GetStatusDetails

func (c *Client) GetStatusDetails() *StatusDetails

getStatusDetails return with the list of the PeerInfos

func (*Client) IsLoginComplete

func (c *Client) IsLoginComplete() bool

func (*Client) IsLoginRequired

func (c *Client) IsLoginRequired() bool

func (*Client) LoginForMobile

func (c *Client) LoginForMobile() string

func (*Client) RemoveConnectionListener

func (c *Client) RemoveConnectionListener()

RemoveConnectionListener remove connection listener

func (*Client) Run

func (c *Client) Run(fd int32, interfaceName string) error

Run start the internal client. It is a blocker function

func (*Client) SelectRoute added in v0.27.5

func (c *Client) SelectRoute(id string) error

func (*Client) SetConnectionListener

func (c *Client) SetConnectionListener(listener ConnectionListener)

SetConnectionListener set the network connection listener

func (*Client) SetTraceLogLevel

func (c *Client) SetTraceLogLevel()

ÏSetTraceLogLevel configure the logger to trace level

func (*Client) Stop

func (c *Client) Stop()

Stop the internal client and free the resources

type ConnectionListener

type ConnectionListener interface {
	peer.Listener
}

ConnectionListener export internal Listener for mobile

type CustomLogger

type CustomLogger interface {
	Debug(message string)
	Info(message string)
	Error(message string)
}

CustomLogger export internal CustomLogger for mobile

type DnsManager

type DnsManager interface {
	dns.IosDnsManager
}

DnsManager export internal dns Manager for mobile

type DomainCollection added in v0.28.5

type DomainCollection interface {
	Add(s DomainInfo) DomainCollection
	Get(i int) *DomainInfo
	Size() int
}

type DomainDetails added in v0.28.5

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

func (DomainDetails) Add added in v0.28.5

func (DomainDetails) Get added in v0.28.5

func (array DomainDetails) Get(i int) *DomainInfo

func (DomainDetails) Size added in v0.28.5

func (array DomainDetails) Size() int

type DomainInfo added in v0.28.5

type DomainInfo struct {
	Domain      string
	ResolvedIPs string
}

type ErrListener

type ErrListener interface {
	OnSuccess()
	OnError(error)
}

ErrListener is async listener for mobile framework

type NetworkChangeListener

type NetworkChangeListener interface {
	listener.NetworkChangeListener
}

RouteListener export internal RouteListener for mobile

type PeerInfo

type PeerInfo struct {
	IP                         string
	FQDN                       string
	LocalIceCandidateEndpoint  string
	RemoteIceCandidateEndpoint string
	LocalIceCandidateType      string
	RemoteIceCandidateType     string
	PubKey                     string
	Latency                    string
	BytesRx                    int64
	BytesTx                    int64
	ConnStatus                 string
	ConnStatusUpdate           string
	Direct                     bool
	LastWireguardHandshake     string
	Relayed                    bool
	RosenpassEnabled           bool
	Routes                     RoutesDetails
}

PeerInfo describe information about the peers. It designed for the UI usage

func (PeerInfo) GetRouteDetails added in v0.27.5

func (p PeerInfo) GetRouteDetails() *RoutesDetails

GetRoutes return with RouteDetails

type PeerInfoCollection

type PeerInfoCollection interface {
	Add(s string) PeerInfoCollection
	Get(i int) string
	Size() int
	GetFQDN() string
	GetIP() string
}

PeerInfoCollection made for Java layer to get non default types as collection

type Preferences

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

Preferences export a subset of the internal config for gomobile

func NewPreferences

func NewPreferences(configPath string) *Preferences

NewPreferences create new Preferences instance

func (*Preferences) Commit

func (p *Preferences) Commit() error

Commit write out the changes into config file

func (*Preferences) GetAdminURL

func (p *Preferences) GetAdminURL() (string, error)

GetAdminURL read url from config file

func (*Preferences) GetManagementURL

func (p *Preferences) GetManagementURL() (string, error)

GetManagementURL read url from config file

func (*Preferences) GetPreSharedKey

func (p *Preferences) GetPreSharedKey() (string, error)

GetPreSharedKey read preshared key from config file

func (*Preferences) GetRosenpassEnabled added in v0.27.4

func (p *Preferences) GetRosenpassEnabled() (bool, error)

GetRosenpassEnabled read rosenpass enabled from config file

func (*Preferences) GetRosenpassPermissive added in v0.27.4

func (p *Preferences) GetRosenpassPermissive() (bool, error)

GetRosenpassPermissive read rosenpass permissive from config file

func (*Preferences) SetAdminURL

func (p *Preferences) SetAdminURL(url string)

SetAdminURL store the given url and wait for commit

func (*Preferences) SetManagementURL

func (p *Preferences) SetManagementURL(url string)

SetManagementURL store the given url and wait for commit

func (*Preferences) SetPreSharedKey

func (p *Preferences) SetPreSharedKey(key string)

SetPreSharedKey store the given key and wait for commit

func (*Preferences) SetRosenpassEnabled added in v0.27.4

func (p *Preferences) SetRosenpassEnabled(enabled bool)

SetRosenpassEnabled store if rosenpass is enabled

func (*Preferences) SetRosenpassPermissive added in v0.27.4

func (p *Preferences) SetRosenpassPermissive(permissive bool)

SetRosenpassPermissive store the given permissive and wait for commit

type RoutesDetails added in v0.27.5

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

func (RoutesDetails) Add added in v0.27.5

func (array RoutesDetails) Add(s RoutesInfo) RoutesDetails

Add new PeerInfo to the collection

func (RoutesDetails) Get added in v0.27.5

func (array RoutesDetails) Get(i int) *RoutesInfo

Get return an element of the collection

func (RoutesDetails) Size added in v0.27.5

func (array RoutesDetails) Size() int

Size return with the size of the collection

type RoutesInfo added in v0.27.5

type RoutesInfo struct {
	Route string
}

type RoutesInfoCollection added in v0.27.5

type RoutesInfoCollection interface {
	Add(s string) RoutesInfoCollection
	Get(i int) string
	Size() int
}

RoutesInfoCollection made for Java layer to get non default types as collection

type RoutesSelectionDetails added in v0.27.5

type RoutesSelectionDetails struct {
	All    bool
	Append bool
	// contains filtered or unexported fields
}

func (RoutesSelectionDetails) Add added in v0.27.5

Add new PeerInfo to the collection

func (RoutesSelectionDetails) Get added in v0.27.5

Get return an element of the collection

func (RoutesSelectionDetails) Size added in v0.27.5

func (array RoutesSelectionDetails) Size() int

Size return with the size of the collection

type RoutesSelectionInfo added in v0.27.5

type RoutesSelectionInfo struct {
	ID       string
	Network  string
	Domains  *DomainDetails
	Selected bool
}

type RoutesSelectionInfoCollection added in v0.27.5

type RoutesSelectionInfoCollection interface {
	Add(s string) RoutesSelectionInfoCollection
	Get(i int) string
	Size() int
}

RoutesSelectionInfoCollection made for Java layer to get non default types as collection

type SSOListener

type SSOListener interface {
	OnSuccess(bool)
	OnError(error)
}

SSOListener is async listener for mobile framework

type StatusDetails

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

StatusDetails is the implementation of the PeerInfoCollection

func (StatusDetails) Add

func (array StatusDetails) Add(s PeerInfo) StatusDetails

Add new PeerInfo to the collection

func (StatusDetails) Get

func (array StatusDetails) Get(i int) *PeerInfo

Get return an element of the collection

func (StatusDetails) GetFQDN

func (array StatusDetails) GetFQDN() string

GetFQDN return with the FQDN of the local peer

func (StatusDetails) GetIP

func (array StatusDetails) GetIP() string

GetIP return with the IP of the local peer

func (StatusDetails) Size

func (array StatusDetails) Size() int

Size return with the size of the collection

type URLOpener

type URLOpener interface {
	Open(string)
}

URLOpener it is a callback interface. The Open function will be triggered if the backend want to show an url for the user

Jump to

Keyboard shortcuts

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