Documentation
¶
Index ¶
- Constants
- Variables
- func AdvertiseService(hostname string, port int, realm, orgID string) (*zeroconf.Server, error)
- func Attach(session *xconn.Session, desktopName, orgID string) error
- func CfgDirectory() (string, error)
- func CloudURI() string
- func ConnectCloudRealm(cfgDirectory string) (*xconn.Session, error)
- func ConnectDeviceRealm(ctx context.Context, realm, cfgDirectory string, useP2P bool) (*xconn.Session, error)
- func CredentialsFilePath() (string, error)
- func Detach(session *xconn.Session, authID string) error
- func FetchTURNServers(session *xconn.Session) ([]xconnwebrtc.ICEServer, int64, error)
- func GetOrRefreshTURNServers(ctx context.Context, authid, privKey, cfgDirectory string) ([]xconnwebrtc.ICEServer, error)
- func Login(session *xconn.Session, username string) error
- func ProxyProgressiveInvocationHandler(proxyCalls *ProxyCalls, clientSessions *ClientSessions, ...) xconn.InvocationHandler
- func PullFiles(session *xconn.Session, remotePath, localPath string, recursive bool) error
- func ReadCredentials(cfgDirectory string) (string, string, error)
- func RemoveCredentialsFiles(cfgDirectory string) error
- func StartInteractiveCommand(session *xconn.Session, procedureName string, args ...string) error
- func WritePrincipalsToFile(principals []*CryptosignPrincipal) error
- type Authenticator
- func (a *Authenticator) Authenticate(request auth.Request) (auth.Response, error)
- func (a *Authenticator) Methods() []auth.Method
- func (a *Authenticator) RetrievePrincipal(authid string) (*CryptosignPrincipal, bool)
- func (a *Authenticator) SetPrincipal(authid string, principal *CryptosignPrincipal)
- func (a *Authenticator) SetPrincipals(principals []*CryptosignPrincipal)
- func (a *Authenticator) SubscribeEvents(session *xconn.Session, machineID string) error
- type ClientSessions
- func (c *ClientSessions) DeleteDeviceSession(realm string)
- func (c *ClientSessions) DeviceSessions() map[string]*xconn.Session
- func (c *ClientSessions) EnsureDeviceSession(ctx context.Context, realm, cfgDirectory string) (*xconn.Session, error)
- func (c *ClientSessions) LoggedIn() bool
- func (c *ClientSessions) Login()
- func (c *ClientSessions) Logout()
- func (c *ClientSessions) SessionByRealm(authid string) (*xconn.Session, bool)
- func (c *ClientSessions) StoreDeviceSession(realm string, session *xconn.Session)
- type Config
- type Credentials
- type CryptosignPrincipal
- type Deskconn
- type Device
- type FileBrowseResult
- type FileBrowser
- type FileEntry
- type MPRIS
- func (m *MPRIS) ListPlayers() (map[string]string, error)
- func (m *MPRIS) Next() error
- func (m *MPRIS) NextPlayer(name string) error
- func (m *MPRIS) Pause() error
- func (m *MPRIS) PausePlayer(name string) error
- func (m *MPRIS) Play() error
- func (m *MPRIS) PlayPause() error
- func (m *MPRIS) PlayPausePlayer(name string) error
- func (m *MPRIS) PlayPlayer(name string) error
- func (m *MPRIS) Previous() error
- func (m *MPRIS) PreviousPlayer(name string) error
- type Organization
- type ProxyCall
- type ProxyCalls
- type Screen
- type TURNCredentials
Constants ¶
View Source
const ( Realm = "io.xconn.deskconn" ProcedureDeskconnAttachDesktop = "io.xconn.deskconn.desktop.attach" ProcedureDeskconnDetachDesktop = "io.xconn.deskconn.desktop.detach" ProcedureDeskconnOrganizationList = "io.xconn.deskconn.organization.list" ProcedureOrganizationCreate = "io.xconn.deskconn.organization.create" TopicDeskconnDesktopDetachFormat = "io.xconn.deskconn.desktop.%s.detach" MachineIDPath = "/etc/machine-id" )
View Source
const ( ProcedureListKeys = "io.xconn.deskconn.desktop.access.key.list" TopicKeyAddedFormat = "io.xconn.deskconn.desktop.%s.key.add" TopicKeyRemovedFormat = "io.xconn.deskconn.desktop.%s.key.remove" )
View Source
const ( ProcedureScreenBrightnessGet = "io.xconn.deskconn.deskconnd.screen.brightness.get" ProcedureScreenBrightnessSet = "io.xconn.deskconn.deskconnd.screen.brightness.set" ProcedureScreenLock = "io.xconn.deskconn.deskconnd.screen.lock" ProcedureScreenIsLocked = "io.xconn.deskconn.deskconnd.screen.islocked" ProcedureShell = "io.xconn.deskconn.deskconnd.shell" ProcedureExec = "io.xconn.deskconn.deskconnd.exec" ProcedureFileBrowse = "io.xconn.deskconn.deskconnd.file.browse" ProcedureMPRISPlayers = "io.xconn.deskconn.deskconnd.mpris.players" ProcedureMPRISPlayPause = "io.xconn.deskconn.deskconnd.mpris.playpause" ProcedureMPRISPlay = "io.xconn.deskconn.deskconnd.mpris.play" ProcedureMPRISPause = "io.xconn.deskconn.deskconnd.mpris.pause" ProcedureMPRISNext = "io.xconn.deskconn.deskconnd.mpris.next" ProcedureMPRISPrevious = "io.xconn.deskconn.deskconnd.mpris.previous" ErrInvalidArgument = "wamp.error.invalid_argument" ErrOperationFailed = "wamp.error.operation_failed" )
View Source
const ( ProcedureWebRTCOffer = "io.xconn.webrtc.offer" TopicAnswererOnCandidate = "io.xconn.webrtc.answerer.on_candidate" TopicOffererOnCandidate = "io.xconn.webrtc.offerer.on_candidate" ProcedurePrincipalCreate = "io.xconn.deskconn.account.principal.create" ProcedurePrincipalDelete = "io.xconn.deskconn.account.principal.delete" ProcedureAccountGet = "io.xconn.deskconn.account.get" ProcedureProxyShell = "io.xconn.deskconn.deskconnd.proxy.shell" ProcedureProxyExec = "io.xconn.deskconn.deskconnd.proxy.exec" ProcedureLogin = "io.xconn.deskconn.login" ProcedureLogout = "io.xconn.deskconn.logout" ProcedureConnectedDevices = "io.xconn.deskconn.connected_devices" ProcedureListDesktop = "io.xconn.deskconn.desktop.list" ProcedureAppUpdateCheck = "io.xconn.deskconn.app.update.check" ProcedureCoturnCreate = "io.xconn.deskconn.coturn.credentials.create" LocalRealm = "io.xconn.deskconn.local" CloudRealm = "io.xconn.deskconn" ErrAuthenticationFailed = "wamp.error.authentication_failed" )
View Source
const (
ProcedureFileDownload = "io.xconn.deskconn.deskconnd.file.download"
)
Variables ¶
View Source
var BacklightBasePath = "/sys/class/backlight" //nolint: gochecknoglobals
Functions ¶
func AdvertiseService ¶
func CfgDirectory ¶
func ConnectDeviceRealm ¶
func CredentialsFilePath ¶
func FetchTURNServers ¶
func GetOrRefreshTURNServers ¶
func ProxyProgressiveInvocationHandler ¶
func ProxyProgressiveInvocationHandler(proxyCalls *ProxyCalls, clientSessions *ClientSessions, cfgDirectory, procedure string) xconn.InvocationHandler
func RemoveCredentialsFiles ¶
func StartInteractiveCommand ¶
func WritePrincipalsToFile ¶
func WritePrincipalsToFile(principals []*CryptosignPrincipal) error
Types ¶
type Authenticator ¶
func NewAuthenticator ¶
func NewAuthenticator(principals []*CryptosignPrincipal) *Authenticator
func (*Authenticator) Authenticate ¶
func (*Authenticator) Methods ¶
func (a *Authenticator) Methods() []auth.Method
func (*Authenticator) RetrievePrincipal ¶
func (a *Authenticator) RetrievePrincipal(authid string) (*CryptosignPrincipal, bool)
func (*Authenticator) SetPrincipal ¶
func (a *Authenticator) SetPrincipal(authid string, principal *CryptosignPrincipal)
func (*Authenticator) SetPrincipals ¶
func (a *Authenticator) SetPrincipals(principals []*CryptosignPrincipal)
func (*Authenticator) SubscribeEvents ¶
func (a *Authenticator) SubscribeEvents(session *xconn.Session, machineID string) error
type ClientSessions ¶
func NewClientSessions ¶
func NewClientSessions() *ClientSessions
func (*ClientSessions) DeleteDeviceSession ¶
func (c *ClientSessions) DeleteDeviceSession(realm string)
func (*ClientSessions) DeviceSessions ¶
func (c *ClientSessions) DeviceSessions() map[string]*xconn.Session
func (*ClientSessions) EnsureDeviceSession ¶
func (*ClientSessions) LoggedIn ¶
func (c *ClientSessions) LoggedIn() bool
func (*ClientSessions) Login ¶
func (c *ClientSessions) Login()
func (*ClientSessions) Logout ¶
func (c *ClientSessions) Logout()
func (*ClientSessions) SessionByRealm ¶
func (c *ClientSessions) SessionByRealm(authid string) (*xconn.Session, bool)
func (*ClientSessions) StoreDeviceSession ¶
func (c *ClientSessions) StoreDeviceSession(realm string, session *xconn.Session)
type Credentials ¶
type Credentials struct {
Realm string `json:"realm"`
AuthID string `json:"authid"`
PublicKey string `json:"public_key"`
PrivateKey string `json:"private_key"` // #nosec
OrganizationID string `json:"organization_id"`
}
func EnsureCredentials ¶
func EnsureCredentials() (*Credentials, error)
type CryptosignPrincipal ¶
type CryptosignPrincipal struct {
AuthID string `json:"authid"`
AuthorizedKeys []string `json:"authorized_keys"`
AuthRole string `json:"authrole"`
}
func ReadPrincipalsFromFile ¶
func ReadPrincipalsFromFile() ([]*CryptosignPrincipal, error)
type Deskconn ¶
type Deskconn struct {
// contains filtered or unexported fields
}
func NewDeskconn ¶
type Device ¶
type Device struct {
Authid string `json:"authid" yaml:"authid"`
ID string `json:"id" yaml:"id"`
Name string `json:"name" yaml:"name"`
Organization Organization `json:"organization" yaml:"organization"`
Realm string `json:"realm" yaml:"realm"`
Alias string `yaml:"alias"`
Connected bool `yaml:"-" json:"-"`
}
func DevicesFromCfg ¶
func FetchDevicesFromCloud ¶
type FileBrowseResult ¶
type FileBrowseResult struct {
Path string `json:"path"`
HomePath string `json:"home_path"`
ParentPath string `json:"parent_path,omitempty"`
Type string `json:"type"`
Mode string `json:"mode"`
Size int64 `json:"size"`
ModTime time.Time `json:"mod_time"`
IsDir bool `json:"is_dir"`
IsSymlink bool `json:"is_symlink"`
LinkTarget string `json:"link_target,omitempty"`
Entries []FileEntry `json:"entries,omitempty"`
}
type FileBrowser ¶
type FileBrowser struct{}
func NewFileBrowser ¶
func NewFileBrowser() *FileBrowser
func (*FileBrowser) Browse ¶
func (f *FileBrowser) Browse(pathArg string) (*FileBrowseResult, error)
type FileEntry ¶
type FileEntry struct {
Name string `json:"name"`
Path string `json:"path"`
Type string `json:"type"`
Mode string `json:"mode"`
Size int64 `json:"size"`
Hidden bool `json:"hidden"`
ModTime time.Time `json:"mod_time"`
IsDir bool `json:"is_dir"`
IsSymlink bool `json:"is_symlink"`
LinkTarget string `json:"link_target,omitempty"`
}
type MPRIS ¶
type MPRIS struct {
// contains filtered or unexported fields
}
func (*MPRIS) NextPlayer ¶
func (*MPRIS) PausePlayer ¶
func (*MPRIS) PlayPausePlayer ¶
func (*MPRIS) PlayPlayer ¶
func (*MPRIS) PreviousPlayer ¶
type Organization ¶
type ProxyCalls ¶
func NewProxyCalls ¶
func NewProxyCalls() *ProxyCalls
func (*ProxyCalls) Delete ¶
func (p *ProxyCalls) Delete(id uint64)
func (*ProxyCalls) Store ¶
func (p *ProxyCalls) Store(id uint64, c *ProxyCall)
type Screen ¶
type Screen struct {
// contains filtered or unexported fields
}
func (*Screen) GetBrightness ¶
func (*Screen) SetBrightness ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.