|
|
@ -25,7 +25,6 @@ NM_DEVICE_IFACE = "org.freedesktop.NetworkManager.Device" |
|
|
|
|
|
|
|
|
|
|
|
NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8 |
|
|
|
NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# NetworkManager device states |
|
|
|
# NetworkManager device states |
|
|
|
class NMDeviceState(IntEnum): |
|
|
|
class NMDeviceState(IntEnum): |
|
|
|
DISCONNECTED = 30 |
|
|
|
DISCONNECTED = 30 |
|
|
@ -34,7 +33,6 @@ class NMDeviceState(IntEnum): |
|
|
|
IP_CONFIG = 70 |
|
|
|
IP_CONFIG = 70 |
|
|
|
ACTIVATED = 100 |
|
|
|
ACTIVATED = 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SecurityType(IntEnum): |
|
|
|
class SecurityType(IntEnum): |
|
|
|
OPEN = 0 |
|
|
|
OPEN = 0 |
|
|
|
WPA = 1 |
|
|
|
WPA = 1 |
|
|
@ -42,7 +40,6 @@ class SecurityType(IntEnum): |
|
|
|
WPA3 = 3 |
|
|
|
WPA3 = 3 |
|
|
|
UNSUPPORTED = 4 |
|
|
|
UNSUPPORTED = 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
@dataclass |
|
|
|
class NetworkInfo: |
|
|
|
class NetworkInfo: |
|
|
|
ssid: str |
|
|
|
ssid: str |
|
|
@ -66,10 +63,10 @@ class WifiManager: |
|
|
|
self.callbacks = callbacks |
|
|
|
self.callbacks = callbacks |
|
|
|
self.networks: list[NetworkInfo] = [] |
|
|
|
self.networks: list[NetworkInfo] = [] |
|
|
|
self.bus: MessageBus = None |
|
|
|
self.bus: MessageBus = None |
|
|
|
self.device_path: str = '' |
|
|
|
self.device_path: str = "" |
|
|
|
self.device_proxy = None |
|
|
|
self.device_proxy = None |
|
|
|
self.saved_connections: dict[str, str] = {} |
|
|
|
self.saved_connections: dict[str, str] = {} |
|
|
|
self.active_ap_path: str = '' |
|
|
|
self.active_ap_path: str = "" |
|
|
|
self.scan_task: asyncio.Task | None = None |
|
|
|
self.scan_task: asyncio.Task | None = None |
|
|
|
self.running: bool = True |
|
|
|
self.running: bool = True |
|
|
|
|
|
|
|
|
|
|
@ -137,7 +134,7 @@ class WifiManager: |
|
|
|
return False |
|
|
|
return False |
|
|
|
try: |
|
|
|
try: |
|
|
|
nm_iface = await self._get_interface(NM, NM_PATH, NM_IFACE) |
|
|
|
nm_iface = await self._get_interface(NM, NM_PATH, NM_IFACE) |
|
|
|
await nm_iface.call_activate_connection(connection_path, self.device_path, '/') |
|
|
|
await nm_iface.call_activate_connection(connection_path, self.device_path, "/") |
|
|
|
return True |
|
|
|
return True |
|
|
|
except DBusError as e: |
|
|
|
except DBusError as e: |
|
|
|
cloudlog.error(f"Failed to activate connection {ssid}: {str(e)}") |
|
|
|
cloudlog.error(f"Failed to activate connection {ssid}: {str(e)}") |
|
|
|