network

package
v0.0.0-...-3d35af2 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NmDeviceStateReasonWrongPassword        = 8
	NmDeviceStateReasonSupplicantTimeout    = 24
	NmDeviceStateReasonSupplicantFailed     = 25
	NmDeviceStateReasonSecretsRequired      = 7
	NmDeviceStateReasonNoSecrets            = 6
	NmDeviceStateReasonNoSsid               = 10
	NmDeviceStateReasonDhcpClientFailed     = 14
	NmDeviceStateReasonIpConfigUnavailable  = 18
	NmDeviceStateReasonSupplicantDisconnect = 23
	NmDeviceStateReasonCarrier              = 40
	NmDeviceStateReasonNewActivation        = 60
)

Variables

This section is empty.

Functions

func HandleRequest

func HandleRequest(conn net.Conn, req models.Request, manager *Manager)

Types

type Backend

type Backend interface {
	Initialize() error
	Close()

	GetWiFiEnabled() (bool, error)
	SetWiFiEnabled(enabled bool) error

	ScanWiFi() error
	ScanWiFiDevice(device string) error
	GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)
	GetWiFiDevices() []WiFiDevice

	ConnectWiFi(req ConnectionRequest) error
	DisconnectWiFi() error
	DisconnectWiFiDevice(device string) error
	ForgetWiFiNetwork(ssid string) error
	SetWiFiAutoconnect(ssid string, autoconnect bool) error

	GetEthernetDevices() []EthernetDevice
	GetWiredConnections() ([]WiredConnection, error)
	GetWiredNetworkDetails(uuid string) (*WiredNetworkInfoResponse, error)
	ConnectEthernet() error
	DisconnectEthernet() error
	DisconnectEthernetDevice(device string) error
	ActivateWiredConnection(uuid string) error

	ListVPNProfiles() ([]VPNProfile, error)
	ListActiveVPN() ([]VPNActive, error)
	ConnectVPN(uuidOrName string, singleActive bool) error
	DisconnectVPN(uuidOrName string) error
	DisconnectAllVPN() error
	ClearVPNCredentials(uuidOrName string) error
	ListVPNPlugins() ([]VPNPlugin, error)
	ImportVPN(filePath string, name string) (*VPNImportResult, error)
	GetVPNConfig(uuidOrName string) (*VPNConfig, error)
	UpdateVPNConfig(uuid string, updates map[string]any) error
	SetVPNCredentials(uuid string, username string, password string, save bool) error
	DeleteVPN(uuidOrName string) error

	GetCurrentState() (*BackendState, error)

	StartMonitoring(onStateChange func()) error
	StopMonitoring()

	GetPromptBroker() PromptBroker
	SetPromptBroker(broker PromptBroker) error
	SubmitCredentials(token string, secrets map[string]string, save bool) error
	CancelCredentials(token string) error
}

type BackendState

type BackendState struct {
	Backend                string
	NetworkStatus          NetworkStatus
	EthernetIP             string
	EthernetDevice         string
	EthernetConnected      bool
	EthernetConnectionUuid string
	EthernetDevices        []EthernetDevice
	WiFiIP                 string
	WiFiDevice             string
	WiFiConnected          bool
	WiFiEnabled            bool
	WiFiSSID               string
	WiFiBSSID              string
	WiFiSignal             uint8
	WiFiNetworks           []WiFiNetwork
	WiFiDevices            []WiFiDevice
	WiredConnections       []WiredConnection
	VPNProfiles            []VPNProfile
	VPNActive              []VPNActive
	IsConnecting           bool
	ConnectingSSID         string
	ConnectingDevice       string
	IsConnectingVPN        bool
	ConnectingVPNUUID      string
	LastError              string
}

type BackendType

type BackendType int
const (
	BackendNone BackendType = iota
	BackendNetworkManager
	BackendIwd
	BackendConnMan
	BackendNetworkd
)

type ConnectionPreference

type ConnectionPreference string
const (
	PreferenceAuto     ConnectionPreference = "auto"
	PreferenceWiFi     ConnectionPreference = "wifi"
	PreferenceEthernet ConnectionPreference = "ethernet"
)

type ConnectionRequest

type ConnectionRequest struct {
	SSID              string `json:"ssid"`
	Password          string `json:"password,omitempty"`
	Username          string `json:"username,omitempty"`
	AnonymousIdentity string `json:"anonymousIdentity,omitempty"`
	DomainSuffixMatch string `json:"domainSuffixMatch,omitempty"`
	Interactive       bool   `json:"interactive,omitempty"`
	Hidden            bool   `json:"hidden,omitempty"`
	Device            string `json:"device,omitempty"`
	EAPMethod         string `json:"eapMethod,omitempty"`
	Phase2Auth        string `json:"phase2Auth,omitempty"`
	CACertPath        string `json:"caCertPath,omitempty"`
	ClientCertPath    string `json:"clientCertPath,omitempty"`
	PrivateKeyPath    string `json:"privateKeyPath,omitempty"`
	UseSystemCACerts  *bool  `json:"useSystemCACerts,omitempty"`
}

type ConnectionStateChecker

type ConnectionStateChecker interface {
	IsConnectingTo(ssid string) bool
}

type CredentialPrompt

type CredentialPrompt struct {
	Token          string      `json:"token"`
	Name           string      `json:"name"`
	SSID           string      `json:"ssid"`
	ConnType       string      `json:"connType"`
	VpnService     string      `json:"vpnService"`
	Setting        string      `json:"setting"`
	Fields         []string    `json:"fields"`
	FieldsInfo     []FieldInfo `json:"fieldsInfo"`
	Hints          []string    `json:"hints"`
	Reason         string      `json:"reason"`
	ConnectionId   string      `json:"connectionId"`
	ConnectionUuid string      `json:"connectionUuid"`
}

type DetectResult

type DetectResult struct {
	Backend      BackendType
	HasNM        bool
	HasIwd       bool
	HasConnMan   bool
	HasWpaSupp   bool
	HasNetworkd  bool
	ChosenReason string
}

func DetectNetworkStack

func DetectNetworkStack() (*DetectResult, error)

type EthernetDevice

type EthernetDevice struct {
	Name      string `json:"name"`
	HwAddress string `json:"hwAddress"`
	State     string `json:"state"`
	Connected bool   `json:"connected"`
	IP        string `json:"ip,omitempty"`
	Speed     uint32 `json:"speed,omitempty"`
	Driver    string `json:"driver,omitempty"`
}

type EventType

type EventType string
const (
	EventStateChanged    EventType = "state_changed"
	EventNetworksUpdated EventType = "networks_updated"
	EventConnecting      EventType = "connecting"
	EventConnected       EventType = "connected"
	EventDisconnected    EventType = "disconnected"
	EventError           EventType = "error"
)

type FieldInfo

type FieldInfo struct {
	Name     string `json:"name"`
	Label    string `json:"label"`
	IsSecret bool   `json:"isSecret"`
}

type HybridIwdNetworkdBackend

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

func (*HybridIwdNetworkdBackend) ActivateWiredConnection

func (b *HybridIwdNetworkdBackend) ActivateWiredConnection(uuid string) error

func (*HybridIwdNetworkdBackend) CancelCredentials

func (b *HybridIwdNetworkdBackend) CancelCredentials(token string) error

func (*HybridIwdNetworkdBackend) ClearVPNCredentials

func (b *HybridIwdNetworkdBackend) ClearVPNCredentials(uuidOrName string) error

func (*HybridIwdNetworkdBackend) Close

func (b *HybridIwdNetworkdBackend) Close()

func (*HybridIwdNetworkdBackend) ConnectEthernet

func (b *HybridIwdNetworkdBackend) ConnectEthernet() error

func (*HybridIwdNetworkdBackend) ConnectVPN

func (b *HybridIwdNetworkdBackend) ConnectVPN(uuidOrName string, singleActive bool) error

func (*HybridIwdNetworkdBackend) ConnectWiFi

func (b *HybridIwdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error

func (*HybridIwdNetworkdBackend) DeleteVPN

func (b *HybridIwdNetworkdBackend) DeleteVPN(uuidOrName string) error

func (*HybridIwdNetworkdBackend) DisconnectAllVPN

func (b *HybridIwdNetworkdBackend) DisconnectAllVPN() error

func (*HybridIwdNetworkdBackend) DisconnectEthernet

func (b *HybridIwdNetworkdBackend) DisconnectEthernet() error

func (*HybridIwdNetworkdBackend) DisconnectEthernetDevice

func (b *HybridIwdNetworkdBackend) DisconnectEthernetDevice(device string) error

func (*HybridIwdNetworkdBackend) DisconnectVPN

func (b *HybridIwdNetworkdBackend) DisconnectVPN(uuidOrName string) error

func (*HybridIwdNetworkdBackend) DisconnectWiFi

func (b *HybridIwdNetworkdBackend) DisconnectWiFi() error

func (*HybridIwdNetworkdBackend) DisconnectWiFiDevice

func (b *HybridIwdNetworkdBackend) DisconnectWiFiDevice(device string) error

func (*HybridIwdNetworkdBackend) ForgetWiFiNetwork

func (b *HybridIwdNetworkdBackend) ForgetWiFiNetwork(ssid string) error

func (*HybridIwdNetworkdBackend) GetCurrentState

func (b *HybridIwdNetworkdBackend) GetCurrentState() (*BackendState, error)

func (*HybridIwdNetworkdBackend) GetEthernetDevices

func (b *HybridIwdNetworkdBackend) GetEthernetDevices() []EthernetDevice

func (*HybridIwdNetworkdBackend) GetPromptBroker

func (b *HybridIwdNetworkdBackend) GetPromptBroker() PromptBroker

func (*HybridIwdNetworkdBackend) GetVPNConfig

func (b *HybridIwdNetworkdBackend) GetVPNConfig(uuidOrName string) (*VPNConfig, error)

func (*HybridIwdNetworkdBackend) GetWiFiDevices

func (b *HybridIwdNetworkdBackend) GetWiFiDevices() []WiFiDevice

func (*HybridIwdNetworkdBackend) GetWiFiEnabled

func (b *HybridIwdNetworkdBackend) GetWiFiEnabled() (bool, error)

func (*HybridIwdNetworkdBackend) GetWiFiNetworkDetails

func (b *HybridIwdNetworkdBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)

func (*HybridIwdNetworkdBackend) GetWiredConnections

func (b *HybridIwdNetworkdBackend) GetWiredConnections() ([]WiredConnection, error)

func (*HybridIwdNetworkdBackend) GetWiredNetworkDetails

func (b *HybridIwdNetworkdBackend) GetWiredNetworkDetails(uuid string) (*WiredNetworkInfoResponse, error)

func (*HybridIwdNetworkdBackend) ImportVPN

func (b *HybridIwdNetworkdBackend) ImportVPN(filePath string, name string) (*VPNImportResult, error)

func (*HybridIwdNetworkdBackend) Initialize

func (b *HybridIwdNetworkdBackend) Initialize() error

func (*HybridIwdNetworkdBackend) ListActiveVPN

func (b *HybridIwdNetworkdBackend) ListActiveVPN() ([]VPNActive, error)

func (*HybridIwdNetworkdBackend) ListVPNPlugins

func (b *HybridIwdNetworkdBackend) ListVPNPlugins() ([]VPNPlugin, error)

func (*HybridIwdNetworkdBackend) ListVPNProfiles

func (b *HybridIwdNetworkdBackend) ListVPNProfiles() ([]VPNProfile, error)

func (*HybridIwdNetworkdBackend) ScanWiFi

func (b *HybridIwdNetworkdBackend) ScanWiFi() error

func (*HybridIwdNetworkdBackend) ScanWiFiDevice

func (b *HybridIwdNetworkdBackend) ScanWiFiDevice(device string) error

func (*HybridIwdNetworkdBackend) SetPromptBroker

func (b *HybridIwdNetworkdBackend) SetPromptBroker(broker PromptBroker) error

func (*HybridIwdNetworkdBackend) SetVPNCredentials

func (b *HybridIwdNetworkdBackend) SetVPNCredentials(uuid, username, password string, save bool) error

func (*HybridIwdNetworkdBackend) SetWiFiAutoconnect

func (b *HybridIwdNetworkdBackend) SetWiFiAutoconnect(ssid string, autoconnect bool) error

func (*HybridIwdNetworkdBackend) SetWiFiEnabled

func (b *HybridIwdNetworkdBackend) SetWiFiEnabled(enabled bool) error

func (*HybridIwdNetworkdBackend) StartMonitoring

func (b *HybridIwdNetworkdBackend) StartMonitoring(onStateChange func()) error

func (*HybridIwdNetworkdBackend) StopMonitoring

func (b *HybridIwdNetworkdBackend) StopMonitoring()

func (*HybridIwdNetworkdBackend) SubmitCredentials

func (b *HybridIwdNetworkdBackend) SubmitCredentials(token string, secrets map[string]string, save bool) error

func (*HybridIwdNetworkdBackend) UpdateVPNConfig

func (b *HybridIwdNetworkdBackend) UpdateVPNConfig(uuid string, updates map[string]any) error

type IWDAgent

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

func NewIWDAgent

func NewIWDAgent(conn *dbus.Conn, prompts PromptBroker) (*IWDAgent, error)

func (*IWDAgent) Cancel

func (a *IWDAgent) Cancel(reason string) *dbus.Error

func (*IWDAgent) Close

func (a *IWDAgent) Close()

func (*IWDAgent) Introspect

func (a *IWDAgent) Introspect() (string, *dbus.Error)

func (*IWDAgent) Release

func (a *IWDAgent) Release() *dbus.Error

func (*IWDAgent) RequestPassphrase

func (a *IWDAgent) RequestPassphrase(network dbus.ObjectPath) (string, *dbus.Error)

func (*IWDAgent) RequestPrivateKeyPassphrase

func (a *IWDAgent) RequestPrivateKeyPassphrase(network dbus.ObjectPath) (string, *dbus.Error)

func (*IWDAgent) RequestUserNameAndPassword

func (a *IWDAgent) RequestUserNameAndPassword(network dbus.ObjectPath) (string, string, *dbus.Error)

func (*IWDAgent) RequestUserPassword

func (a *IWDAgent) RequestUserPassword(network dbus.ObjectPath, user string) (string, *dbus.Error)

func (*IWDAgent) SetStateChecker

func (a *IWDAgent) SetStateChecker(checker ConnectionStateChecker)

type IWDBackend

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

func NewIWDBackend

func NewIWDBackend() (*IWDBackend, error)

func (*IWDBackend) ActivateWiredConnection

func (b *IWDBackend) ActivateWiredConnection(uuid string) error

func (*IWDBackend) CancelCredentials

func (b *IWDBackend) CancelCredentials(token string) error

func (*IWDBackend) ClearVPNCredentials

func (b *IWDBackend) ClearVPNCredentials(uuidOrName string) error

func (*IWDBackend) Close

func (b *IWDBackend) Close()

func (*IWDBackend) ConnectEthernet

func (b *IWDBackend) ConnectEthernet() error

func (*IWDBackend) ConnectVPN

func (b *IWDBackend) ConnectVPN(uuidOrName string, singleActive bool) error

func (*IWDBackend) ConnectWiFi

func (b *IWDBackend) ConnectWiFi(req ConnectionRequest) error

func (*IWDBackend) DeleteVPN

func (b *IWDBackend) DeleteVPN(uuidOrName string) error

func (*IWDBackend) DisconnectAllVPN

func (b *IWDBackend) DisconnectAllVPN() error

func (*IWDBackend) DisconnectEthernet

func (b *IWDBackend) DisconnectEthernet() error

func (*IWDBackend) DisconnectEthernetDevice

func (b *IWDBackend) DisconnectEthernetDevice(device string) error

func (*IWDBackend) DisconnectVPN

func (b *IWDBackend) DisconnectVPN(uuidOrName string) error

func (*IWDBackend) DisconnectWiFi

func (b *IWDBackend) DisconnectWiFi() error

func (*IWDBackend) DisconnectWiFiDevice

func (b *IWDBackend) DisconnectWiFiDevice(device string) error

func (*IWDBackend) ForgetWiFiNetwork

func (b *IWDBackend) ForgetWiFiNetwork(ssid string) error

func (*IWDBackend) GetCurrentState

func (b *IWDBackend) GetCurrentState() (*BackendState, error)

func (*IWDBackend) GetEthernetDevices

func (b *IWDBackend) GetEthernetDevices() []EthernetDevice

func (*IWDBackend) GetPromptBroker

func (b *IWDBackend) GetPromptBroker() PromptBroker

func (*IWDBackend) GetVPNConfig

func (b *IWDBackend) GetVPNConfig(uuidOrName string) (*VPNConfig, error)

func (*IWDBackend) GetWiFiDevices

func (b *IWDBackend) GetWiFiDevices() []WiFiDevice

func (*IWDBackend) GetWiFiEnabled

func (b *IWDBackend) GetWiFiEnabled() (bool, error)

func (*IWDBackend) GetWiFiNetworkDetails

func (b *IWDBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)

func (*IWDBackend) GetWiredConnections

func (b *IWDBackend) GetWiredConnections() ([]WiredConnection, error)

func (*IWDBackend) GetWiredNetworkDetails

func (b *IWDBackend) GetWiredNetworkDetails(uuid string) (*WiredNetworkInfoResponse, error)

func (*IWDBackend) ImportVPN

func (b *IWDBackend) ImportVPN(filePath string, name string) (*VPNImportResult, error)

func (*IWDBackend) Initialize

func (b *IWDBackend) Initialize() error

func (*IWDBackend) ListActiveVPN

func (b *IWDBackend) ListActiveVPN() ([]VPNActive, error)

func (*IWDBackend) ListVPNPlugins

func (b *IWDBackend) ListVPNPlugins() ([]VPNPlugin, error)

func (*IWDBackend) ListVPNProfiles

func (b *IWDBackend) ListVPNProfiles() ([]VPNProfile, error)

func (*IWDBackend) MarkIPConfigSeen

func (b *IWDBackend) MarkIPConfigSeen()

func (*IWDBackend) OnPromptRetry

func (b *IWDBackend) OnPromptRetry(ssid string)

func (*IWDBackend) OnUserCanceledPrompt

func (b *IWDBackend) OnUserCanceledPrompt()

func (*IWDBackend) ScanWiFi

func (b *IWDBackend) ScanWiFi() error

func (*IWDBackend) ScanWiFiDevice

func (b *IWDBackend) ScanWiFiDevice(device string) error

func (*IWDBackend) SetPromptBroker

func (b *IWDBackend) SetPromptBroker(broker PromptBroker) error

func (*IWDBackend) SetVPNCredentials

func (b *IWDBackend) SetVPNCredentials(uuid, username, password string, save bool) error

func (*IWDBackend) SetWiFiAutoconnect

func (b *IWDBackend) SetWiFiAutoconnect(ssid string, autoconnect bool) error

func (*IWDBackend) SetWiFiEnabled

func (b *IWDBackend) SetWiFiEnabled(enabled bool) error

func (*IWDBackend) StartMonitoring

func (b *IWDBackend) StartMonitoring(onStateChange func()) error

func (*IWDBackend) StopMonitoring

func (b *IWDBackend) StopMonitoring()

func (*IWDBackend) SubmitCredentials

func (b *IWDBackend) SubmitCredentials(token string, secrets map[string]string, save bool) error

func (*IWDBackend) UpdateVPNConfig

func (b *IWDBackend) UpdateVPNConfig(uuid string, updates map[string]any) error

type Manager

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

func NewManager

func NewManager() (*Manager, error)

func NewTestManager

func NewTestManager(backend Backend, state *NetworkState) *Manager

NewTestManager creates a Manager for testing with a provided backend

func (*Manager) CancelCredentials

func (m *Manager) CancelCredentials(token string) error

func (*Manager) ClearVPNCredentials

func (m *Manager) ClearVPNCredentials(uuidOrName string) error

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) ConnectEthernet

func (m *Manager) ConnectEthernet() error

func (*Manager) ConnectVPN

func (m *Manager) ConnectVPN(uuidOrName string, singleActive bool) error

func (*Manager) ConnectWiFi

func (m *Manager) ConnectWiFi(req ConnectionRequest) error

func (*Manager) DeleteVPN

func (m *Manager) DeleteVPN(uuidOrName string) error

func (*Manager) DisableWiFi

func (m *Manager) DisableWiFi() error

func (*Manager) DisconnectAllVPN

func (m *Manager) DisconnectAllVPN() error

func (*Manager) DisconnectEthernet

func (m *Manager) DisconnectEthernet() error

func (*Manager) DisconnectEthernetDevice

func (m *Manager) DisconnectEthernetDevice(device string) error

func (*Manager) DisconnectVPN

func (m *Manager) DisconnectVPN(uuidOrName string) error

func (*Manager) DisconnectWiFi

func (m *Manager) DisconnectWiFi() error

func (*Manager) DisconnectWiFiDevice

func (m *Manager) DisconnectWiFiDevice(device string) error

func (*Manager) EnableWiFi

func (m *Manager) EnableWiFi() error

func (*Manager) ForgetWiFiNetwork

func (m *Manager) ForgetWiFiNetwork(ssid string) error

func (*Manager) GetConnectionPreference

func (m *Manager) GetConnectionPreference() ConnectionPreference

func (*Manager) GetEthernetDevices

func (m *Manager) GetEthernetDevices() []EthernetDevice

func (*Manager) GetNetworkInfo

func (m *Manager) GetNetworkInfo(ssid string) (*WiFiNetwork, error)

func (*Manager) GetNetworkInfoDetailed

func (m *Manager) GetNetworkInfoDetailed(ssid string) (*NetworkInfoResponse, error)

func (*Manager) GetPromptBroker

func (m *Manager) GetPromptBroker() PromptBroker

func (*Manager) GetState

func (m *Manager) GetState() NetworkState

func (*Manager) GetVPNConfig

func (m *Manager) GetVPNConfig(uuidOrName string) (*VPNConfig, error)

func (*Manager) GetWiFiDevices

func (m *Manager) GetWiFiDevices() []WiFiDevice

func (*Manager) GetWiFiNetworks

func (m *Manager) GetWiFiNetworks() []WiFiNetwork

func (*Manager) GetWiredConfigs

func (m *Manager) GetWiredConfigs() []WiredConnection

func (*Manager) GetWiredNetworkInfoDetailed

func (m *Manager) GetWiredNetworkInfoDetailed(uuid string) (*WiredNetworkInfoResponse, error)

func (*Manager) ImportVPN

func (m *Manager) ImportVPN(filePath string, name string) (*VPNImportResult, error)

func (*Manager) ListActiveVPN

func (m *Manager) ListActiveVPN() ([]VPNActive, error)

func (*Manager) ListVPNPlugins

func (m *Manager) ListVPNPlugins() ([]VPNPlugin, error)

func (*Manager) ListVPNProfiles

func (m *Manager) ListVPNProfiles() ([]VPNProfile, error)

func (*Manager) ScanWiFi

func (m *Manager) ScanWiFi() error

func (*Manager) ScanWiFiDevice

func (m *Manager) ScanWiFiDevice(device string) error

func (*Manager) SetConnectionPreference

func (m *Manager) SetConnectionPreference(pref ConnectionPreference) error

func (*Manager) SetPromptBroker

func (m *Manager) SetPromptBroker(broker PromptBroker) error

func (*Manager) SetVPNCredentials

func (m *Manager) SetVPNCredentials(uuid, username, password string, save bool) error

func (*Manager) SetWiFiAutoconnect

func (m *Manager) SetWiFiAutoconnect(ssid string, autoconnect bool) error

func (*Manager) SubmitCredentials

func (m *Manager) SubmitCredentials(token string, secrets map[string]string, save bool) error

func (*Manager) Subscribe

func (m *Manager) Subscribe(id string) chan NetworkState

func (*Manager) SubscribeCredentials

func (m *Manager) SubscribeCredentials(id string) chan CredentialPrompt

func (*Manager) ToggleWiFi

func (m *Manager) ToggleWiFi() error

func (*Manager) Unsubscribe

func (m *Manager) Unsubscribe(id string)

func (*Manager) UnsubscribeCredentials

func (m *Manager) UnsubscribeCredentials(id string)

func (*Manager) UpdateVPNConfig

func (m *Manager) UpdateVPNConfig(uuid string, updates map[string]any) error

func (*Manager) WasRecentlyFailed

func (m *Manager) WasRecentlyFailed(ssid string) bool

type NetworkEvent

type NetworkEvent struct {
	Type EventType    `json:"type"`
	Data NetworkState `json:"data"`
}

type NetworkInfoResponse

type NetworkInfoResponse struct {
	SSID  string        `json:"ssid"`
	Bands []WiFiNetwork `json:"bands"`
}

type NetworkManagerBackend

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

func NewNetworkManagerBackend

func NewNetworkManagerBackend(nmConn ...gonetworkmanager.NetworkManager) (*NetworkManagerBackend, error)

func (*NetworkManagerBackend) ActivateWiredConnection

func (b *NetworkManagerBackend) ActivateWiredConnection(uuid string) error

func (*NetworkManagerBackend) CancelCredentials

func (b *NetworkManagerBackend) CancelCredentials(token string) error

func (*NetworkManagerBackend) ClearVPNCredentials

func (b *NetworkManagerBackend) ClearVPNCredentials(uuidOrName string) error

func (*NetworkManagerBackend) Close

func (b *NetworkManagerBackend) Close()

func (*NetworkManagerBackend) ConnectEthernet

func (b *NetworkManagerBackend) ConnectEthernet() error

func (*NetworkManagerBackend) ConnectVPN

func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool) error

func (*NetworkManagerBackend) ConnectWiFi

func (b *NetworkManagerBackend) ConnectWiFi(req ConnectionRequest) error

func (*NetworkManagerBackend) DeleteVPN

func (b *NetworkManagerBackend) DeleteVPN(uuidOrName string) error

func (*NetworkManagerBackend) DisconnectAllVPN

func (b *NetworkManagerBackend) DisconnectAllVPN() error

func (*NetworkManagerBackend) DisconnectEthernet

func (b *NetworkManagerBackend) DisconnectEthernet() error

func (*NetworkManagerBackend) DisconnectEthernetDevice

func (b *NetworkManagerBackend) DisconnectEthernetDevice(device string) error

func (*NetworkManagerBackend) DisconnectVPN

func (b *NetworkManagerBackend) DisconnectVPN(uuidOrName string) error

func (*NetworkManagerBackend) DisconnectWiFi

func (b *NetworkManagerBackend) DisconnectWiFi() error

func (*NetworkManagerBackend) DisconnectWiFiDevice

func (b *NetworkManagerBackend) DisconnectWiFiDevice(device string) error

func (*NetworkManagerBackend) ForgetWiFiNetwork

func (b *NetworkManagerBackend) ForgetWiFiNetwork(ssid string) error

func (*NetworkManagerBackend) GetCurrentState

func (b *NetworkManagerBackend) GetCurrentState() (*BackendState, error)

func (*NetworkManagerBackend) GetEthernetDevices

func (b *NetworkManagerBackend) GetEthernetDevices() []EthernetDevice

func (*NetworkManagerBackend) GetPromptBroker

func (b *NetworkManagerBackend) GetPromptBroker() PromptBroker

func (*NetworkManagerBackend) GetVPNConfig

func (b *NetworkManagerBackend) GetVPNConfig(uuidOrName string) (*VPNConfig, error)

func (*NetworkManagerBackend) GetWiFiDevices

func (b *NetworkManagerBackend) GetWiFiDevices() []WiFiDevice

func (*NetworkManagerBackend) GetWiFiEnabled

func (b *NetworkManagerBackend) GetWiFiEnabled() (bool, error)

func (*NetworkManagerBackend) GetWiFiNetworkDetails

func (b *NetworkManagerBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)

func (*NetworkManagerBackend) GetWiredConnections

func (b *NetworkManagerBackend) GetWiredConnections() ([]WiredConnection, error)

func (*NetworkManagerBackend) GetWiredNetworkDetails

func (b *NetworkManagerBackend) GetWiredNetworkDetails(uuid string) (*WiredNetworkInfoResponse, error)

func (*NetworkManagerBackend) ImportVPN

func (b *NetworkManagerBackend) ImportVPN(filePath string, name string) (*VPNImportResult, error)

func (*NetworkManagerBackend) Initialize

func (b *NetworkManagerBackend) Initialize() error

func (*NetworkManagerBackend) IsConnectingTo

func (b *NetworkManagerBackend) IsConnectingTo(ssid string) bool

func (*NetworkManagerBackend) ListActiveVPN

func (b *NetworkManagerBackend) ListActiveVPN() ([]VPNActive, error)

func (*NetworkManagerBackend) ListVPNPlugins

func (b *NetworkManagerBackend) ListVPNPlugins() ([]VPNPlugin, error)

func (*NetworkManagerBackend) ListVPNProfiles

func (b *NetworkManagerBackend) ListVPNProfiles() ([]VPNProfile, error)

func (*NetworkManagerBackend) ScanWiFi

func (b *NetworkManagerBackend) ScanWiFi() error

func (*NetworkManagerBackend) ScanWiFiDevice

func (b *NetworkManagerBackend) ScanWiFiDevice(device string) error

func (*NetworkManagerBackend) SetPromptBroker

func (b *NetworkManagerBackend) SetPromptBroker(broker PromptBroker) error

func (*NetworkManagerBackend) SetVPNCredentials

func (b *NetworkManagerBackend) SetVPNCredentials(connUUID string, username string, password string, saveToKeyring bool) error

func (*NetworkManagerBackend) SetWiFiAutoconnect

func (b *NetworkManagerBackend) SetWiFiAutoconnect(ssid string, autoconnect bool) error

func (*NetworkManagerBackend) SetWiFiEnabled

func (b *NetworkManagerBackend) SetWiFiEnabled(enabled bool) error

func (*NetworkManagerBackend) StartMonitoring

func (b *NetworkManagerBackend) StartMonitoring(onStateChange func()) error

func (*NetworkManagerBackend) StopMonitoring

func (b *NetworkManagerBackend) StopMonitoring()

func (*NetworkManagerBackend) SubmitCredentials

func (b *NetworkManagerBackend) SubmitCredentials(token string, secrets map[string]string, save bool) error

func (*NetworkManagerBackend) UpdateVPNConfig

func (b *NetworkManagerBackend) UpdateVPNConfig(connUUID string, updates map[string]any) error

type NetworkState

type NetworkState struct {
	Backend                string               `json:"backend"`
	NetworkStatus          NetworkStatus        `json:"networkStatus"`
	Preference             ConnectionPreference `json:"preference"`
	EthernetIP             string               `json:"ethernetIP"`
	EthernetDevice         string               `json:"ethernetDevice"`
	EthernetConnected      bool                 `json:"ethernetConnected"`
	EthernetConnectionUuid string               `json:"ethernetConnectionUuid"`
	EthernetDevices        []EthernetDevice     `json:"ethernetDevices"`
	WiFiIP                 string               `json:"wifiIP"`
	WiFiDevice             string               `json:"wifiDevice"`
	WiFiConnected          bool                 `json:"wifiConnected"`
	WiFiEnabled            bool                 `json:"wifiEnabled"`
	WiFiSSID               string               `json:"wifiSSID"`
	WiFiBSSID              string               `json:"wifiBSSID"`
	WiFiSignal             uint8                `json:"wifiSignal"`
	WiFiNetworks           []WiFiNetwork        `json:"wifiNetworks"`
	WiFiDevices            []WiFiDevice         `json:"wifiDevices"`
	WiredConnections       []WiredConnection    `json:"wiredConnections"`
	VPNProfiles            []VPNProfile         `json:"vpnProfiles"`
	VPNActive              []VPNActive          `json:"vpnActive"`
	IsConnecting           bool                 `json:"isConnecting"`
	ConnectingSSID         string               `json:"connectingSSID"`
	ConnectingDevice       string               `json:"connectingDevice,omitempty"`
	LastError              string               `json:"lastError"`
}

type NetworkStatus

type NetworkStatus string
const (
	StatusDisconnected NetworkStatus = "disconnected"
	StatusEthernet     NetworkStatus = "ethernet"
	StatusWiFi         NetworkStatus = "wifi"
	StatusVPN          NetworkStatus = "vpn"
)

type PriorityUpdate

type PriorityUpdate struct {
	Preference ConnectionPreference `json:"preference"`
}

type PromptBroker

type PromptBroker interface {
	Ask(ctx context.Context, req PromptRequest) (token string, err error)
	Wait(ctx context.Context, token string) (PromptReply, error)
	Resolve(token string, reply PromptReply) error
	Cancel(path string, setting string) error
}

func NewSubscriptionBroker

func NewSubscriptionBroker(broadcastPrompt func(CredentialPrompt)) PromptBroker

type PromptReply

type PromptReply struct {
	Secrets map[string]string `json:"secrets"`
	Save    bool              `json:"save"`
	Cancel  bool              `json:"cancel"`
}

type PromptRequest

type PromptRequest struct {
	Name           string      `json:"name"`
	SSID           string      `json:"ssid"`
	ConnType       string      `json:"connType"`
	VpnService     string      `json:"vpnService"`
	SettingName    string      `json:"setting"`
	Fields         []string    `json:"fields"`
	FieldsInfo     []FieldInfo `json:"fieldsInfo"`
	Hints          []string    `json:"hints"`
	Reason         string      `json:"reason"`
	ConnectionId   string      `json:"connectionId"`
	ConnectionUuid string      `json:"connectionUuid"`
	ConnectionPath string      `json:"connectionPath"`
}

type SecretAgent

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

func NewSecretAgent

func NewSecretAgent(prompts PromptBroker, manager *Manager, backend *NetworkManagerBackend) (*SecretAgent, error)

func (*SecretAgent) CancelGetSecrets

func (a *SecretAgent) CancelGetSecrets(path dbus.ObjectPath, settingName string) *dbus.Error

func (*SecretAgent) Close

func (a *SecretAgent) Close()

func (*SecretAgent) DeleteSecrets

func (a *SecretAgent) DeleteSecrets(conn map[string]nmVariantMap, path dbus.ObjectPath) *dbus.Error

func (*SecretAgent) DeleteSecrets2

func (a *SecretAgent) DeleteSecrets2(path dbus.ObjectPath, setting string) *dbus.Error

func (*SecretAgent) GetSecrets

func (a *SecretAgent) GetSecrets(
	conn map[string]nmVariantMap,
	path dbus.ObjectPath,
	settingName string,
	hints []string,
	flags uint32,
) (nmSettingMap, *dbus.Error)

func (*SecretAgent) Introspect

func (a *SecretAgent) Introspect() (string, *dbus.Error)

type SubscriptionBroker

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

func (*SubscriptionBroker) Ask

func (*SubscriptionBroker) Cancel

func (b *SubscriptionBroker) Cancel(path string, setting string) error

func (*SubscriptionBroker) Resolve

func (b *SubscriptionBroker) Resolve(token string, reply PromptReply) error

func (*SubscriptionBroker) Wait

func (b *SubscriptionBroker) Wait(ctx context.Context, token string) (PromptReply, error)

type SystemdNetworkdBackend

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

func NewSystemdNetworkdBackend

func NewSystemdNetworkdBackend() (*SystemdNetworkdBackend, error)

func (*SystemdNetworkdBackend) ActivateWiredConnection

func (b *SystemdNetworkdBackend) ActivateWiredConnection(id string) error

func (*SystemdNetworkdBackend) CancelCredentials

func (b *SystemdNetworkdBackend) CancelCredentials(token string) error

func (*SystemdNetworkdBackend) ClearVPNCredentials

func (b *SystemdNetworkdBackend) ClearVPNCredentials(uuidOrName string) error

func (*SystemdNetworkdBackend) Close

func (b *SystemdNetworkdBackend) Close()

func (*SystemdNetworkdBackend) ConnectEthernet

func (b *SystemdNetworkdBackend) ConnectEthernet() error

func (*SystemdNetworkdBackend) ConnectVPN

func (b *SystemdNetworkdBackend) ConnectVPN(uuidOrName string, singleActive bool) error

func (*SystemdNetworkdBackend) ConnectWiFi

func (b *SystemdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error

func (*SystemdNetworkdBackend) DeleteVPN

func (b *SystemdNetworkdBackend) DeleteVPN(uuidOrName string) error

func (*SystemdNetworkdBackend) DisconnectAllVPN

func (b *SystemdNetworkdBackend) DisconnectAllVPN() error

func (*SystemdNetworkdBackend) DisconnectEthernet

func (b *SystemdNetworkdBackend) DisconnectEthernet() error

func (*SystemdNetworkdBackend) DisconnectEthernetDevice

func (b *SystemdNetworkdBackend) DisconnectEthernetDevice(device string) error

func (*SystemdNetworkdBackend) DisconnectVPN

func (b *SystemdNetworkdBackend) DisconnectVPN(uuidOrName string) error

func (*SystemdNetworkdBackend) DisconnectWiFi

func (b *SystemdNetworkdBackend) DisconnectWiFi() error

func (*SystemdNetworkdBackend) DisconnectWiFiDevice

func (b *SystemdNetworkdBackend) DisconnectWiFiDevice(device string) error

func (*SystemdNetworkdBackend) EnsureDhcpUp

func (b *SystemdNetworkdBackend) EnsureDhcpUp(ifname string) error

func (*SystemdNetworkdBackend) ForgetWiFiNetwork

func (b *SystemdNetworkdBackend) ForgetWiFiNetwork(ssid string) error

func (*SystemdNetworkdBackend) GetCurrentState

func (b *SystemdNetworkdBackend) GetCurrentState() (*BackendState, error)

func (*SystemdNetworkdBackend) GetEthernetDevices

func (b *SystemdNetworkdBackend) GetEthernetDevices() []EthernetDevice

func (*SystemdNetworkdBackend) GetPromptBroker

func (b *SystemdNetworkdBackend) GetPromptBroker() PromptBroker

func (*SystemdNetworkdBackend) GetVPNConfig

func (b *SystemdNetworkdBackend) GetVPNConfig(uuidOrName string) (*VPNConfig, error)

func (*SystemdNetworkdBackend) GetWiFiDevices

func (b *SystemdNetworkdBackend) GetWiFiDevices() []WiFiDevice

func (*SystemdNetworkdBackend) GetWiFiEnabled

func (b *SystemdNetworkdBackend) GetWiFiEnabled() (bool, error)

func (*SystemdNetworkdBackend) GetWiFiNetworkDetails

func (b *SystemdNetworkdBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)

func (*SystemdNetworkdBackend) GetWiredConnections

func (b *SystemdNetworkdBackend) GetWiredConnections() ([]WiredConnection, error)

func (*SystemdNetworkdBackend) GetWiredNetworkDetails

func (b *SystemdNetworkdBackend) GetWiredNetworkDetails(id string) (*WiredNetworkInfoResponse, error)

func (*SystemdNetworkdBackend) ImportVPN

func (b *SystemdNetworkdBackend) ImportVPN(filePath string, name string) (*VPNImportResult, error)

func (*SystemdNetworkdBackend) Initialize

func (b *SystemdNetworkdBackend) Initialize() error

func (*SystemdNetworkdBackend) ListActiveVPN

func (b *SystemdNetworkdBackend) ListActiveVPN() ([]VPNActive, error)

func (*SystemdNetworkdBackend) ListVPNPlugins

func (b *SystemdNetworkdBackend) ListVPNPlugins() ([]VPNPlugin, error)

func (*SystemdNetworkdBackend) ListVPNProfiles

func (b *SystemdNetworkdBackend) ListVPNProfiles() ([]VPNProfile, error)

func (*SystemdNetworkdBackend) ScanWiFi

func (b *SystemdNetworkdBackend) ScanWiFi() error

func (*SystemdNetworkdBackend) ScanWiFiDevice

func (b *SystemdNetworkdBackend) ScanWiFiDevice(device string) error

func (*SystemdNetworkdBackend) SetPromptBroker

func (b *SystemdNetworkdBackend) SetPromptBroker(broker PromptBroker) error

func (*SystemdNetworkdBackend) SetVPNCredentials

func (b *SystemdNetworkdBackend) SetVPNCredentials(uuid, username, password string, save bool) error

func (*SystemdNetworkdBackend) SetWiFiAutoconnect

func (b *SystemdNetworkdBackend) SetWiFiAutoconnect(ssid string, autoconnect bool) error

func (*SystemdNetworkdBackend) SetWiFiEnabled

func (b *SystemdNetworkdBackend) SetWiFiEnabled(enabled bool) error

func (*SystemdNetworkdBackend) StartMonitoring

func (b *SystemdNetworkdBackend) StartMonitoring(onStateChange func()) error

func (*SystemdNetworkdBackend) StopMonitoring

func (b *SystemdNetworkdBackend) StopMonitoring()

func (*SystemdNetworkdBackend) SubmitCredentials

func (b *SystemdNetworkdBackend) SubmitCredentials(token string, secrets map[string]string, save bool) error

func (*SystemdNetworkdBackend) UpdateVPNConfig

func (b *SystemdNetworkdBackend) UpdateVPNConfig(uuid string, updates map[string]any) error

type VPNActive

type VPNActive struct {
	Name       string            `json:"name"`
	UUID       string            `json:"uuid"`
	Device     string            `json:"device,omitempty"`
	State      string            `json:"state,omitempty"`
	Type       string            `json:"type"`
	Plugin     string            `json:"serviceType"`
	IP         string            `json:"ip,omitempty"`
	Gateway    string            `json:"gateway,omitempty"`
	RemoteHost string            `json:"remoteHost,omitempty"`
	Username   string            `json:"username,omitempty"`
	MTU        uint32            `json:"mtu,omitempty"`
	Data       map[string]string `json:"data,omitempty"`
}

type VPNConfig

type VPNConfig struct {
	UUID        string            `json:"uuid"`
	Name        string            `json:"name"`
	Type        string            `json:"type"`
	ServiceType string            `json:"serviceType,omitempty"`
	Autoconnect bool              `json:"autoconnect"`
	Data        map[string]string `json:"data,omitempty"`
}

type VPNImportResult

type VPNImportResult struct {
	Success     bool   `json:"success"`
	UUID        string `json:"uuid,omitempty"`
	Name        string `json:"name,omitempty"`
	ServiceType string `json:"serviceType,omitempty"`
	Error       string `json:"error,omitempty"`
}

type VPNPlugin

type VPNPlugin struct {
	Name           string   `json:"name"`
	ServiceType    string   `json:"serviceType"`
	Program        string   `json:"program,omitempty"`
	Supports       []string `json:"supports,omitempty"`
	FileExtensions []string `json:"fileExtensions"`
}

type VPNProfile

type VPNProfile struct {
	Name        string            `json:"name"`
	UUID        string            `json:"uuid"`
	Type        string            `json:"type"`
	ServiceType string            `json:"serviceType"`
	RemoteHost  string            `json:"remoteHost,omitempty"`
	Username    string            `json:"username,omitempty"`
	Autoconnect bool              `json:"autoconnect"`
	Data        map[string]string `json:"data,omitempty"`
}

type VPNState

type VPNState struct {
	Profiles []VPNProfile `json:"profiles"`
	Active   []VPNActive  `json:"activeConnections"`
}

type WiFiDevice

type WiFiDevice struct {
	Name      string        `json:"name"`
	HwAddress string        `json:"hwAddress"`
	State     string        `json:"state"`
	Connected bool          `json:"connected"`
	SSID      string        `json:"ssid,omitempty"`
	BSSID     string        `json:"bssid,omitempty"`
	Signal    uint8         `json:"signal,omitempty"`
	IP        string        `json:"ip,omitempty"`
	Networks  []WiFiNetwork `json:"networks"`
}

type WiFiNetwork

type WiFiNetwork struct {
	SSID        string `json:"ssid"`
	BSSID       string `json:"bssid"`
	Signal      uint8  `json:"signal"`
	Secured     bool   `json:"secured"`
	Enterprise  bool   `json:"enterprise"`
	Connected   bool   `json:"connected"`
	Saved       bool   `json:"saved"`
	Autoconnect bool   `json:"autoconnect"`
	Hidden      bool   `json:"hidden"`
	Frequency   uint32 `json:"frequency"`
	Mode        string `json:"mode"`
	Rate        uint32 `json:"rate"`
	Channel     uint32 `json:"channel"`
	Device      string `json:"device,omitempty"`
}

type WiredConnection

type WiredConnection struct {
	Path     dbus.ObjectPath `json:"path"`
	ID       string          `json:"id"`
	UUID     string          `json:"uuid"`
	Type     string          `json:"type"`
	IsActive bool            `json:"isActive"`
}

type WiredIPConfig

type WiredIPConfig struct {
	IPs     []string `json:"ips"`
	Gateway string   `json:"gateway"`
	DNS     string   `json:"dns"`
}

type WiredNetworkInfoResponse

type WiredNetworkInfoResponse struct {
	UUID   string        `json:"uuid"`
	IFace  string        `json:"iface"`
	Driver string        `json:"driver"`
	HwAddr string        `json:"hwAddr"`
	Speed  string        `json:"speed"`
	IPv4   WiredIPConfig `json:"IPv4s"`
	IPv6   WiredIPConfig `json:"IPv6s"`
}

Jump to

Keyboard shortcuts

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