network

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleRequest

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

Types

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"`
}

type CredentialPrompt added in v0.2.0

type CredentialPrompt struct {
	Token   string   `json:"token"`
	SSID    string   `json:"ssid"`
	Setting string   `json:"setting"`
	Fields  []string `json:"fields"`
	Hints   []string `json:"hints"`
	Reason  string   `json:"reason"`
}

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 Manager

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

func NewManager

func NewManager() (*Manager, error)

func (*Manager) CancelCredentials added in v0.2.0

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

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) ConnectEthernet

func (m *Manager) ConnectEthernet() error

func (*Manager) ConnectWiFi

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

func (*Manager) DisableWiFi

func (m *Manager) DisableWiFi() error

func (*Manager) DisconnectEthernet

func (m *Manager) DisconnectEthernet() error

func (*Manager) DisconnectWiFi

func (m *Manager) DisconnectWiFi() 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) GetNetworkInfo

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

func (*Manager) GetNetworkInfoDetailed

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

func (*Manager) GetPromptBroker added in v0.2.0

func (m *Manager) GetPromptBroker() PromptBroker

func (*Manager) GetState

func (m *Manager) GetState() NetworkState

func (*Manager) GetWiFiNetworks

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

func (*Manager) GetWiredConfigs added in v0.1.17

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

func (*Manager) GetWiredNetworkInfoDetailed added in v0.1.17

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

func (*Manager) ScanWiFi

func (m *Manager) ScanWiFi() error

func (*Manager) SetConnectionPreference

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

func (*Manager) SetPromptBroker added in v0.2.0

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

func (*Manager) StartAutoScan

func (m *Manager) StartAutoScan(interval time.Duration)

func (*Manager) SubmitCredentials added in v0.2.0

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 added in v0.2.0

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 added in v0.2.0

func (m *Manager) UnsubscribeCredentials(id string)

func (*Manager) WasRecentlyFailed added in v0.2.0

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 NetworkState

type NetworkState struct {
	NetworkStatus          NetworkStatus        `json:"networkStatus"`
	Preference             ConnectionPreference `json:"preference"`
	EthernetIP             string               `json:"ethernetIP"`
	EthernetDevice         string               `json:"ethernetDevice"`
	EthernetConnected      bool                 `json:"ethernetConnected"`
	EthernetConnectionUuid string               `json:"ethernetConnectionUuid"`
	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"`
	WiredConnections       []WiredConnection    `json:"wiredConnections"`
	IsConnecting           bool                 `json:"isConnecting"`
	ConnectingSSID         string               `json:"connectingSSID"`
	LastError              string               `json:"lastError"`
}

type NetworkStatus

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

type PriorityUpdate

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

type PromptBroker added in v0.2.0

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
}

func NewSubscriptionBroker added in v0.2.0

func NewSubscriptionBroker(broadcastPrompt func(CredentialPrompt)) PromptBroker

type PromptReply added in v0.2.0

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

type PromptRequest added in v0.2.0

type PromptRequest struct {
	SSID        string   `json:"ssid"`
	SettingName string   `json:"setting"`
	Fields      []string `json:"fields"`
	Hints       []string `json:"hints"`
	Reason      string   `json:"reason"`
}

type Request

type Request struct {
	ID     int                    `json:"id,omitempty"`
	Method string                 `json:"method"`
	Params map[string]interface{} `json:"params,omitempty"`
}

type SecretAgent added in v0.2.0

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

func NewSecretAgent added in v0.2.0

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

func (*SecretAgent) CancelGetSecrets added in v0.2.0

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

func (*SecretAgent) Close added in v0.2.0

func (a *SecretAgent) Close()

func (*SecretAgent) DeleteSecrets added in v0.2.0

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

func (*SecretAgent) DeleteSecrets2 added in v0.2.0

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

func (*SecretAgent) GetSecrets added in v0.2.0

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

func (*SecretAgent) Introspect added in v0.2.0

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

func (*SecretAgent) SaveSecrets added in v0.2.0

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

type SubscriptionBroker added in v0.2.0

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

func (*SubscriptionBroker) Ask added in v0.2.0

func (*SubscriptionBroker) Resolve added in v0.2.0

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

func (*SubscriptionBroker) Wait added in v0.2.0

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

type SuccessResult

type SuccessResult struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}

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"`
	Frequency  uint32 `json:"frequency"`
	Mode       string `json:"mode"`
	Rate       uint32 `json:"rate"`
	Channel    uint32 `json:"channel"`
}

type WiredConnection added in v0.1.17

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 added in v0.1.17

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

type WiredNetworkInfoResponse added in v0.1.17

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