Documentation
¶
Index ¶
- type API
- func (s *API) AddPeerStatus(siteID int, siteName string, connected bool, rtt time.Duration, ...)
- func (s *API) ClearOlmError()
- func (s *API) ClearPeerStatuses()
- func (s *API) GetStatus() StatusResponse
- func (s *API) RemovePeerStatus(siteID int)
- func (s *API) SetAgent(agent string)
- func (s *API) SetConnectionStatus(isConnected bool)
- func (s *API) SetHandlers(onConnect func(ConnectionRequest) error, ...)
- func (s *API) SetOlmError(code string, message string)
- func (s *API) SetOrgID(orgID string)
- func (s *API) SetRegistered(registered bool)
- func (s *API) SetTerminated(terminated bool)
- func (s *API) SetVersion(version string)
- func (s *API) Start() error
- func (s *API) Stop() error
- func (s *API) UpdatePeerHolepunchStatus(siteID int, holepunchConnected bool)
- func (s *API) UpdatePeerRelayStatus(siteID int, endpoint string, isRelay bool)
- func (s *API) UpdatePeerStatus(siteID int, connected bool, rtt time.Duration, endpoint string, isRelay bool)
- type ConnectionRequest
- type MetadataChangeRequest
- type OlmError
- type PeerStatus
- type PowerModeRequest
- type StatusResponse
- type SwitchOrgRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API represents the HTTP server and its state
func NewAPISocket ¶
NewAPISocket creates a new HTTP server that listens on a Unix socket or Windows named pipe
func NewAPIStub ¶ added in v1.4.0
func NewAPIStub() *API
func (*API) AddPeerStatus ¶
func (*API) ClearOlmError ¶ added in v1.4.0
func (s *API) ClearOlmError()
ClearOlmError clears any registration error
func (*API) ClearPeerStatuses ¶
func (s *API) ClearPeerStatuses()
ClearPeerStatuses clears all peer statuses
func (*API) GetStatus ¶
func (s *API) GetStatus() StatusResponse
func (*API) RemovePeerStatus ¶
func (*API) SetConnectionStatus ¶
SetConnectionStatus sets the overall connection status
func (*API) SetHandlers ¶
func (s *API) SetHandlers( onConnect func(ConnectionRequest) error, onSwitchOrg func(SwitchOrgRequest) error, onMetadataChange func(MetadataChangeRequest) error, onDisconnect func() error, onExit func() error, onRebind func() error, onPowerMode func(PowerModeRequest) error, )
SetHandlers sets the callback functions for handling API requests
func (*API) SetOlmError ¶ added in v1.4.0
SetOlmError sets the registration error
func (*API) SetRegistered ¶
func (*API) SetTerminated ¶
func (*API) UpdatePeerHolepunchStatus ¶
UpdatePeerHolepunchStatus updates the holepunch connection status of a peer
func (*API) UpdatePeerRelayStatus ¶
UpdatePeerRelayStatus updates only the relay status of a peer
type ConnectionRequest ¶
type ConnectionRequest struct {
ID string `json:"id"`
Secret string `json:"secret"`
Endpoint string `json:"endpoint"`
UserToken string `json:"userToken,omitempty"`
MTU int `json:"mtu,omitempty"`
DNS string `json:"dns,omitempty"`
DNSProxyIP string `json:"dnsProxyIP,omitempty"`
UpstreamDNS []string `json:"upstreamDNS,omitempty"`
InterfaceName string `json:"interfaceName,omitempty"`
Holepunch bool `json:"holepunch,omitempty"`
TlsClientCert string `json:"tlsClientCert,omitempty"`
PingInterval string `json:"pingInterval,omitempty"`
PingTimeout string `json:"pingTimeout,omitempty"`
OrgID string `json:"orgId,omitempty"`
}
ConnectionRequest defines the structure for an incoming connection request
type MetadataChangeRequest ¶ added in v1.4.0
type PeerStatus ¶
type PeerStatus struct {
SiteID int `json:"siteId"`
Name string `json:"name"`
Connected bool `json:"connected"`
RTT time.Duration `json:"rtt"`
LastSeen time.Time `json:"lastSeen"`
Endpoint string `json:"endpoint,omitempty"`
IsRelay bool `json:"isRelay"`
PeerIP string `json:"peerAddress,omitempty"`
HolepunchConnected bool `json:"holepunchConnected"`
}
PeerStatus represents the status of a peer connection
type PowerModeRequest ¶ added in v1.4.0
type PowerModeRequest struct {
Mode string `json:"mode"` // "normal" or "low"
}
PowerModeRequest represents a request to change power mode
type StatusResponse ¶
type StatusResponse struct {
Connected bool `json:"connected"`
Registered bool `json:"registered"`
Terminated bool `json:"terminated"`
OlmError *OlmError `json:"error,omitempty"`
Version string `json:"version,omitempty"`
Agent string `json:"agent,omitempty"`
OrgID string `json:"orgId,omitempty"`
PeerStatuses map[int]*PeerStatus `json:"peers,omitempty"`
NetworkSettings network.NetworkSettings `json:"networkSettings,omitempty"`
}
StatusResponse is returned by the status endpoint
type SwitchOrgRequest ¶
type SwitchOrgRequest struct {
OrgID string `json:"org_id"`
}
SwitchOrgRequest defines the structure for switching organizations