-
Notifications
You must be signed in to change notification settings - Fork 339
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -33,14 +33,26 @@ export interface AddressData { | |
* Manages networking devices over DBus. | ||
*/ | ||
class NetworkManager { | ||
// Note there can only be one system bus instance open at a time. | ||
private systemBus = DBus.getBus('system'); | ||
// Reference to the DBus system bus once connected | ||
private systemBus: DBus.DBusConnection | null = null; | ||
|
||
/** | ||
* Disconnect the system bus. | ||
* Connect to the system bus. | ||
*/ | ||
start(): void { | ||
// There can only be one system bus instance open at a time. | ||
if (!this.systemBus) { | ||
this.systemBus = DBus.getBus('system'); | ||
} | ||
} | ||
|
||
/** | ||
* Disconnect from the system bus. | ||
*/ | ||
stop(): void { | ||
this.systemBus.disconnect(); | ||
if (this.systemBus) { | ||
this.systemBus.disconnect(); | ||
} | ||
} | ||
|
||
/** | ||
|
@@ -49,7 +61,9 @@ class NetworkManager { | |
* @returns {Promise<string[]>} An array of DBus object paths. | ||
*/ | ||
getDevices(): Promise<string[]> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 66 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
'/org/freedesktop/NetworkManager', | ||
|
@@ -81,7 +95,9 @@ class NetworkManager { | |
* (1 is Ethernet, 2 is Wi-Fi...). | ||
*/ | ||
getDeviceType(path: string): Promise<number> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 100 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -153,7 +169,9 @@ class NetworkManager { | |
* connection object associated with this device. | ||
*/ | ||
getDeviceConnection(path: string): Promise<string> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 174 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -170,6 +188,7 @@ class NetworkManager { | |
reject(); | ||
return; | ||
} | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 191 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
activeConnectionPath, | ||
|
@@ -203,7 +222,9 @@ class NetworkManager { | |
* @returns {Promise<ConnectionSettings>} Resolves with the settings of a connection. | ||
*/ | ||
getConnectionSettings(path: string): Promise<ConnectionSettings> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 227 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -239,7 +260,9 @@ class NetworkManager { | |
* rejects with an Error on failure. | ||
*/ | ||
setConnectionSettings(path: string, settings: ConnectionSettings): Promise<boolean> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 265 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -272,7 +295,9 @@ class NetworkManager { | |
* or rejects on failure. | ||
*/ | ||
activateConnection(connection: string, device: string): Promise<boolean> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 300 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
'/org/freedesktop/NetworkManager', | ||
|
@@ -303,7 +328,9 @@ class NetworkManager { | |
* @returns {Promise<Array<AddressData>>} Promise resolves with IP4Config object. | ||
*/ | ||
getDeviceIp4Config(path: string): Promise<Array<AddressData>> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 333 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -320,6 +347,7 @@ class NetworkManager { | |
reject(); | ||
return; | ||
} | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 350 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
ip4ConfigPath, | ||
|
@@ -355,7 +383,9 @@ class NetworkManager { | |
* @returns {Promise<string>} The SSID of the access point. | ||
*/ | ||
getAccessPointSsid(path: string): Promise<string> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
Check failure on line 388 in src/platforms/utilities/network-manager.ts
|
||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -390,7 +420,9 @@ class NetworkManager { | |
* @returns {Promise<number>} The strength of the signal as a percentage. | ||
*/ | ||
getAccessPointStrength(path: string): Promise<number> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -423,7 +455,9 @@ class NetworkManager { | |
* @returns {Promise<boolean>} true if encrypted, false if not. | ||
*/ | ||
async getAccessPointSecurity(path: string): Promise<boolean> { | ||
this.start(); | ||
const wpaFlagRequest = new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -448,6 +482,7 @@ class NetworkManager { | |
); | ||
}); | ||
const wpa2FlagRequest = new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -538,7 +573,9 @@ class NetworkManager { | |
* @returns {Promise<string>} Promise resolves with the DBUS object path of an access point. | ||
*/ | ||
getActiveAccessPoint(path: string): Promise<string> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -569,7 +606,9 @@ class NetworkManager { | |
* @returns {Promise<string[]>} An array of DBus object paths of Access Points. | ||
*/ | ||
getWifiAccessPoints(path: string): Promise<string[]> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|
@@ -633,7 +672,9 @@ class NetworkManager { | |
secure: boolean, | ||
password: string | ||
): Promise<void> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
'/org/freedesktop/NetworkManager', | ||
|
@@ -695,7 +736,9 @@ class NetworkManager { | |
* deactivation or rejects with an Error on failure. | ||
*/ | ||
disconnectNetworkDevice(path: string): Promise<void> { | ||
this.start(); | ||
return new Promise((resolve, reject) => { | ||
// @ts-ignore: this.systemBus assigned in this.start() | ||
this.systemBus.getInterface( | ||
'org.freedesktop.NetworkManager', | ||
path, | ||
|