mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
Move all NetworkManager D-Bus code to its own namespace.
This commit is contained in:
@@ -20,8 +20,9 @@
|
||||
|
||||
namespace nearby {
|
||||
namespace linux {
|
||||
std::unique_ptr<NetworkManagerActiveConnection>
|
||||
NetworkManagerObjectManager::GetActiveConnectionForAccessPoint(
|
||||
namespace networkmanager {
|
||||
std::unique_ptr<ActiveConnection>
|
||||
ObjectManager::GetActiveConnectionForAccessPoint(
|
||||
const sdbus::ObjectPath &access_point,
|
||||
const sdbus::ObjectPath &device_path) {
|
||||
std::map<sdbus::ObjectPath,
|
||||
@@ -46,7 +47,7 @@ NetworkManagerObjectManager::GetActiveConnectionForAccessPoint(
|
||||
std::vector<sdbus::ObjectPath> devices = props["Devices"];
|
||||
for (auto &path : devices) {
|
||||
if (path == device_path) {
|
||||
return std::make_unique<NetworkManagerActiveConnection>(
|
||||
return std::make_unique<ActiveConnection>(
|
||||
system_bus_, object_path);
|
||||
}
|
||||
}
|
||||
@@ -57,8 +58,7 @@ NetworkManagerObjectManager::GetActiveConnectionForAccessPoint(
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::unique_ptr<NetworkManagerIP4Config>
|
||||
NetworkManagerObjectManager::GetIp4Config(
|
||||
std::unique_ptr<IP4Config> ObjectManager::GetIp4Config(
|
||||
const sdbus::ObjectPath &active_connection) {
|
||||
std::map<sdbus::ObjectPath,
|
||||
std::map<std::string, std::map<std::string, sdbus::Variant>>>
|
||||
@@ -80,8 +80,7 @@ NetworkManagerObjectManager::GetIp4Config(
|
||||
sdbus::ObjectPath specific_object = props["SpecificObject"];
|
||||
if (specific_object == active_connection) {
|
||||
sdbus::ObjectPath ip4config = props["Ip4Config"];
|
||||
return std::make_unique<NetworkManagerIP4Config>(system_bus_,
|
||||
ip4config);
|
||||
return std::make_unique<IP4Config>(system_bus_, ip4config);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,5 +88,6 @@ NetworkManagerObjectManager::GetIp4Config(
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
} // namespace networkmanager
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
namespace nearby {
|
||||
namespace linux {
|
||||
namespace networkmanager {
|
||||
class NetworkManager final
|
||||
: public sdbus::ProxyInterfaces<org::freedesktop::NetworkManager_proxy> {
|
||||
public:
|
||||
@@ -96,48 +97,44 @@ class NetworkManager final
|
||||
std::atomic<NMState> state_;
|
||||
};
|
||||
|
||||
class NetworkManagerIP4Config
|
||||
: public sdbus::ProxyInterfaces<
|
||||
org::freedesktop::NetworkManager::IP4Config_proxy> {
|
||||
class IP4Config : public sdbus::ProxyInterfaces<
|
||||
org::freedesktop::NetworkManager::IP4Config_proxy> {
|
||||
public:
|
||||
NetworkManagerIP4Config(const NetworkManagerIP4Config &) = delete;
|
||||
NetworkManagerIP4Config(NetworkManagerIP4Config &&) = delete;
|
||||
NetworkManagerIP4Config &operator=(const NetworkManagerIP4Config &) = delete;
|
||||
NetworkManagerIP4Config &operator=(NetworkManagerIP4Config &&) = delete;
|
||||
NetworkManagerIP4Config(std::shared_ptr<sdbus::IConnection> system_bus,
|
||||
const sdbus::ObjectPath &config_object_path)
|
||||
IP4Config(const IP4Config &) = delete;
|
||||
IP4Config(IP4Config &&) = delete;
|
||||
IP4Config &operator=(const IP4Config &) = delete;
|
||||
IP4Config &operator=(IP4Config &&) = delete;
|
||||
IP4Config(std::shared_ptr<sdbus::IConnection> system_bus,
|
||||
const sdbus::ObjectPath &config_object_path)
|
||||
: ProxyInterfaces(*system_bus, "org.freedesktop.NetworkManager",
|
||||
config_object_path),
|
||||
system_bus_(std::move(system_bus)) {
|
||||
registerProxy();
|
||||
}
|
||||
~NetworkManagerIP4Config() { unregisterProxy(); }
|
||||
~IP4Config() { unregisterProxy(); }
|
||||
|
||||
private:
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
};
|
||||
|
||||
class NetworkManagerObjectManager final
|
||||
class ObjectManager final
|
||||
: public sdbus::ProxyInterfaces<sdbus::ObjectManager_proxy> {
|
||||
public:
|
||||
NetworkManagerObjectManager(const NetworkManagerObjectManager &) = delete;
|
||||
NetworkManagerObjectManager(NetworkManagerObjectManager &&) = delete;
|
||||
NetworkManagerObjectManager &operator=(const NetworkManagerObjectManager &) =
|
||||
delete;
|
||||
NetworkManagerObjectManager &operator=(NetworkManagerObjectManager &&) =
|
||||
delete;
|
||||
explicit NetworkManagerObjectManager(
|
||||
std::shared_ptr<sdbus::IConnection> system_bus)
|
||||
ObjectManager(const ObjectManager &) = delete;
|
||||
ObjectManager(ObjectManager &&) = delete;
|
||||
ObjectManager &operator=(const ObjectManager &) = delete;
|
||||
ObjectManager &operator=(ObjectManager &&) = delete;
|
||||
explicit ObjectManager(std::shared_ptr<sdbus::IConnection> system_bus)
|
||||
: ProxyInterfaces(*system_bus, "org.freedesktop.NetworkManager",
|
||||
"/org/freedesktop"),
|
||||
system_bus_(std::move(system_bus)) {
|
||||
registerProxy();
|
||||
}
|
||||
~NetworkManagerObjectManager() { unregisterProxy(); }
|
||||
~ObjectManager() { unregisterProxy(); }
|
||||
|
||||
std::unique_ptr<NetworkManagerIP4Config> GetIp4Config(
|
||||
std::unique_ptr<IP4Config> GetIp4Config(
|
||||
const sdbus::ObjectPath &access_point);
|
||||
std::unique_ptr<NetworkManagerActiveConnection>
|
||||
std::unique_ptr<ActiveConnection>
|
||||
GetActiveConnectionForAccessPoint(const sdbus::ObjectPath &access_point_path,
|
||||
const sdbus::ObjectPath &device_path);
|
||||
|
||||
@@ -154,6 +151,7 @@ class NetworkManagerObjectManager final
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
};
|
||||
|
||||
} // namespace networkmanager
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
#endif
|
||||
|
||||
@@ -23,54 +23,55 @@
|
||||
|
||||
namespace nearby {
|
||||
namespace linux {
|
||||
namespace networkmanager {
|
||||
std::ostream &operator<<(
|
||||
std::ostream &stream,
|
||||
const NetworkManagerActiveConnection::ActiveConnectionStateReason &reason) {
|
||||
const ActiveConnection::ActiveConnectionStateReason &reason) {
|
||||
switch (reason) {
|
||||
case NetworkManagerActiveConnection::kStateReasonUnknown:
|
||||
return stream
|
||||
<< "The reason for the active connection state change is unknown.";
|
||||
case NetworkManagerActiveConnection::kStateReasonNone:
|
||||
case ActiveConnection::kStateReasonUnknown:
|
||||
return stream << "The reason for the active connection state change is "
|
||||
"unknown.";
|
||||
case ActiveConnection::kStateReasonNone:
|
||||
return stream
|
||||
<< "No reason was given for the active connection state change.";
|
||||
case NetworkManagerActiveConnection::kStateReasonUserDisconnected:
|
||||
case ActiveConnection::kStateReasonUserDisconnected:
|
||||
return stream << "The active connection changed state because the user "
|
||||
"disconnected it.";
|
||||
case NetworkManagerActiveConnection::kStateReasonDeviceDisconnected:
|
||||
return stream
|
||||
<< "The active connection changed state because the device it was "
|
||||
"using was disconnected.";
|
||||
case NetworkManagerActiveConnection::kStateReasonServiceStopped:
|
||||
case ActiveConnection::kStateReasonDeviceDisconnected:
|
||||
return stream << "The active connection changed state because the "
|
||||
"device it was "
|
||||
"using was disconnected.";
|
||||
case ActiveConnection::kStateReasonServiceStopped:
|
||||
return stream << "The service providing the VPN connection was stopped.";
|
||||
case NetworkManagerActiveConnection::kStateReasonIPConfigInvalid:
|
||||
case ActiveConnection::kStateReasonIPConfigInvalid:
|
||||
return stream << "The IP config of the active connection was invalid.";
|
||||
case NetworkManagerActiveConnection::kStateReasonConnectTimeout:
|
||||
case ActiveConnection::kStateReasonConnectTimeout:
|
||||
return stream << "The connection attempt to the VPN service timed out.";
|
||||
case NetworkManagerActiveConnection::kStateReasonServiceStartTimeout:
|
||||
case ActiveConnection::kStateReasonServiceStartTimeout:
|
||||
return stream
|
||||
<< "A timeout occurred while starting the service providing the "
|
||||
"VPN connection.";
|
||||
case NetworkManagerActiveConnection::kStateReasonServiceStartFailed:
|
||||
case ActiveConnection::kStateReasonServiceStartFailed:
|
||||
return stream
|
||||
<< "Starting the service providing the VPN connection failed.";
|
||||
case NetworkManagerActiveConnection::kStateReasonNoSecrets:
|
||||
case ActiveConnection::kStateReasonNoSecrets:
|
||||
return stream
|
||||
<< "Necessary secrets for the connection were not provided.";
|
||||
case NetworkManagerActiveConnection::kStateReasonLoginFailed:
|
||||
case ActiveConnection::kStateReasonLoginFailed:
|
||||
return stream << "Authentication to the server failed.";
|
||||
case NetworkManagerActiveConnection::kStateReasonConnectionRemoved:
|
||||
case ActiveConnection::kStateReasonConnectionRemoved:
|
||||
return stream << "The connection was deleted from settings.";
|
||||
case NetworkManagerActiveConnection::kStateReasonDependencyFailed:
|
||||
case ActiveConnection::kStateReasonDependencyFailed:
|
||||
return stream
|
||||
<< "Master connection of this connection failed to activate.";
|
||||
case NetworkManagerActiveConnection::kStateReasonDeviceRealizeFailed:
|
||||
case ActiveConnection::kStateReasonDeviceRealizeFailed:
|
||||
return stream << "Could not create the software device link.";
|
||||
case NetworkManagerActiveConnection::kStateReasonDeviceRemoved:
|
||||
case ActiveConnection::kStateReasonDeviceRemoved:
|
||||
return stream << "The device this connection depended on disappeared.";
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::string> NetworkManagerActiveConnection::GetIP4Addresses() {
|
||||
std::vector<std::string> ActiveConnection::GetIP4Addresses() {
|
||||
sdbus::ObjectPath ip4config_path;
|
||||
try {
|
||||
ip4config_path = Ip4Config();
|
||||
@@ -79,7 +80,7 @@ std::vector<std::string> NetworkManagerActiveConnection::GetIP4Addresses() {
|
||||
return {};
|
||||
}
|
||||
|
||||
NetworkManagerIP4Config ip4config(system_bus_, ip4config_path);
|
||||
IP4Config ip4config(system_bus_, ip4config_path);
|
||||
std::vector<std::map<std::string, sdbus::Variant>> address_data;
|
||||
try {
|
||||
address_data = ip4config.AddressData();
|
||||
@@ -97,8 +98,8 @@ std::vector<std::string> NetworkManagerActiveConnection::GetIP4Addresses() {
|
||||
return ip4addresses;
|
||||
}
|
||||
|
||||
std::pair<std::optional<NetworkManagerActiveConnection::ActiveConnectionStateReason>, bool>
|
||||
NetworkManagerActiveConnection::WaitForConnection(absl::Duration timeout) {
|
||||
std::pair<std::optional<ActiveConnection::ActiveConnectionStateReason>, bool>
|
||||
ActiveConnection::WaitForConnection(absl::Duration timeout) {
|
||||
NEARBY_LOGS(VERBOSE) << __func__ << ": Waiting for an update to "
|
||||
<< getObjectPath() << "'s state";
|
||||
|
||||
@@ -120,5 +121,6 @@ NetworkManagerActiveConnection::WaitForConnection(absl::Duration timeout) {
|
||||
return state == kStateActivated ? std::pair{std::nullopt, false}
|
||||
: std::pair{std::optional(reason), false};
|
||||
}
|
||||
} // namespace networkmanager
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
namespace nearby {
|
||||
namespace linux {
|
||||
class NetworkManagerActiveConnection
|
||||
namespace networkmanager {
|
||||
class ActiveConnection
|
||||
: public sdbus::ProxyInterfaces<
|
||||
org::freedesktop::NetworkManager::Connection::Active_proxy> {
|
||||
public:
|
||||
@@ -55,16 +56,12 @@ class NetworkManagerActiveConnection
|
||||
kStateReasonDeviceRemoved = 14,
|
||||
};
|
||||
|
||||
NetworkManagerActiveConnection(const NetworkManagerActiveConnection &) =
|
||||
delete;
|
||||
NetworkManagerActiveConnection(NetworkManagerActiveConnection &&) = delete;
|
||||
NetworkManagerActiveConnection &operator=(
|
||||
const NetworkManagerActiveConnection &) = delete;
|
||||
NetworkManagerActiveConnection &operator=(NetworkManagerActiveConnection &&) =
|
||||
delete;
|
||||
explicit NetworkManagerActiveConnection(
|
||||
std::shared_ptr<sdbus::IConnection> system_bus,
|
||||
sdbus::ObjectPath active_connection_path)
|
||||
ActiveConnection(const ActiveConnection &) = delete;
|
||||
ActiveConnection(ActiveConnection &&) = delete;
|
||||
ActiveConnection &operator=(const ActiveConnection &) = delete;
|
||||
ActiveConnection &operator=(ActiveConnection &&) = delete;
|
||||
explicit ActiveConnection(std::shared_ptr<sdbus::IConnection> system_bus,
|
||||
sdbus::ObjectPath active_connection_path)
|
||||
: ProxyInterfaces(*system_bus, "org.freedesktop.NetworkManager",
|
||||
std::move(active_connection_path)),
|
||||
system_bus_(std::move(system_bus)),
|
||||
@@ -80,7 +77,7 @@ class NetworkManagerActiveConnection
|
||||
DBUS_LOG_PROPERTY_GET_ERROR(this, "State", e);
|
||||
}
|
||||
}
|
||||
virtual ~NetworkManagerActiveConnection() { unregisterProxy(); }
|
||||
virtual ~ActiveConnection() { unregisterProxy(); }
|
||||
|
||||
protected:
|
||||
void onStateChanged(const uint32_t &state, const uint32_t &reason) override
|
||||
@@ -110,8 +107,9 @@ class NetworkManagerActiveConnection
|
||||
|
||||
extern std::ostream &operator<<(
|
||||
std::ostream &stream,
|
||||
const NetworkManagerActiveConnection::ActiveConnectionStateReason &reason);
|
||||
const ActiveConnection::ActiveConnectionStateReason &reason);
|
||||
|
||||
} // namespace networkmanager
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
#endif
|
||||
|
||||
@@ -205,7 +205,7 @@ ImplementationPlatform::CreateBleV2Medium(api::BluetoothAdapter &adapter) {
|
||||
|
||||
namespace {
|
||||
static std::unique_ptr<linux::NetworkManagerWifiMedium> createWifiMedium(
|
||||
std::shared_ptr<linux::NetworkManager> nm) {
|
||||
std::shared_ptr<linux::networkmanager::NetworkManager> nm) {
|
||||
std::vector<sdbus::ObjectPath> device_paths;
|
||||
|
||||
try {
|
||||
@@ -215,7 +215,7 @@ static std::unique_ptr<linux::NetworkManagerWifiMedium> createWifiMedium(
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto manager = linux::NetworkManagerObjectManager(nm->GetConnection());
|
||||
auto manager = linux::networkmanager::ObjectManager(nm->GetConnection());
|
||||
|
||||
std::map<sdbus::ObjectPath,
|
||||
std::map<std::string, std::map<std::string, sdbus::Variant>>>
|
||||
@@ -248,21 +248,21 @@ static std::unique_ptr<linux::NetworkManagerWifiMedium> createWifiMedium(
|
||||
|
||||
std::unique_ptr<api::WifiMedium> ImplementationPlatform::CreateWifiMedium() {
|
||||
auto nm =
|
||||
std::make_shared<linux::NetworkManager>(linux::getSystemBusConnection());
|
||||
std::make_shared<linux::networkmanager::NetworkManager>(linux::getSystemBusConnection());
|
||||
return createWifiMedium(nm);
|
||||
}
|
||||
|
||||
std::unique_ptr<api::WifiLanMedium>
|
||||
ImplementationPlatform::CreateWifiLanMedium() {
|
||||
auto nm =
|
||||
std::make_shared<linux::NetworkManager>(linux::getSystemBusConnection());
|
||||
std::make_shared<linux::networkmanager::NetworkManager>(linux::getSystemBusConnection());
|
||||
return std::make_unique<linux::WifiLanMedium>(nm);
|
||||
}
|
||||
|
||||
std::unique_ptr<api::WifiHotspotMedium>
|
||||
ImplementationPlatform::CreateWifiHotspotMedium() {
|
||||
auto nm =
|
||||
std::make_shared<linux::NetworkManager>(linux::getSystemBusConnection());
|
||||
std::make_shared<linux::networkmanager::NetworkManager>(linux::getSystemBusConnection());
|
||||
auto wifiMedium = createWifiMedium(nm);
|
||||
|
||||
if (wifiMedium == nullptr) {
|
||||
@@ -277,7 +277,7 @@ ImplementationPlatform::CreateWifiHotspotMedium() {
|
||||
std::unique_ptr<api::WifiDirectMedium>
|
||||
ImplementationPlatform::CreateWifiDirectMedium() {
|
||||
auto nm =
|
||||
std::make_shared<linux::NetworkManager>(linux::getSystemBusConnection());
|
||||
std::make_shared<linux::networkmanager::NetworkManager>(linux::getSystemBusConnection());
|
||||
auto wifiMedium = createWifiMedium(nm);
|
||||
|
||||
if (wifiMedium == nullptr) {
|
||||
|
||||
@@ -168,7 +168,6 @@ bool NetworkManagerWifiDirectMedium::StartWifiDirect(
|
||||
wifi_direct_credentials->SetSSID(hotspot_creds.GetSSID());
|
||||
wifi_direct_credentials->SetPassword(hotspot_creds.GetPassword());
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NetworkManagerWifiDirectMedium::StopWifiDirect() {
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <sdbus-c++/IConnection.h>
|
||||
|
||||
#include "internal/platform/implementation/linux/network_manager.h"
|
||||
#include "internal/platform/implementation/linux/wifi_medium.h"
|
||||
#include "internal/platform/implementation/wifi_direct.h"
|
||||
|
||||
@@ -28,7 +29,7 @@ namespace linux {
|
||||
class NetworkManagerWifiDirectMedium : public api::WifiDirectMedium {
|
||||
public:
|
||||
NetworkManagerWifiDirectMedium(
|
||||
std::shared_ptr<NetworkManager> network_manager,
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager,
|
||||
std::unique_ptr<NetworkManagerWifiMedium> wireless_device)
|
||||
: system_bus_(network_manager->GetConnection()),
|
||||
network_manager_(std::move(network_manager)),
|
||||
@@ -56,7 +57,7 @@ class NetworkManagerWifiDirectMedium : public api::WifiDirectMedium {
|
||||
bool ConnectedToWifi();
|
||||
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
std::unique_ptr<NetworkManagerWifiMedium> wireless_device_;
|
||||
};
|
||||
} // namespace linux
|
||||
|
||||
@@ -25,8 +25,8 @@ class NetworkManagerWifiDirectServerSocket
|
||||
: public api::WifiDirectServerSocket {
|
||||
public:
|
||||
NetworkManagerWifiDirectServerSocket(
|
||||
int socket, std::unique_ptr<NetworkManagerActiveConnection> active_conn,
|
||||
std::shared_ptr<NetworkManager> network_manager)
|
||||
int socket, std::unique_ptr<networkmanager::ActiveConnection> active_conn,
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager)
|
||||
: fd_(socket),
|
||||
active_conn_(std::move(active_conn)),
|
||||
network_manager_(std::move(network_manager)) {}
|
||||
@@ -38,8 +38,8 @@ class NetworkManagerWifiDirectServerSocket
|
||||
|
||||
private:
|
||||
sdbus::UnixFd fd_;
|
||||
std::unique_ptr<NetworkManagerActiveConnection> active_conn_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::unique_ptr<networkmanager::ActiveConnection> active_conn_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
};
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
|
||||
@@ -195,14 +195,14 @@ bool NetworkManagerWifiHotspotMedium::StartWifiHotspot(
|
||||
{"addr-gen-mode", static_cast<std::int32_t>(1)},
|
||||
{"method", "shared"},
|
||||
}}};
|
||||
std::unique_ptr<NetworkManagerActiveConnection> active_conn;
|
||||
std::unique_ptr<networkmanager::ActiveConnection> active_conn;
|
||||
try {
|
||||
auto [path, active_path, result] =
|
||||
network_manager_->AddAndActivateConnection2(
|
||||
connection_settings, wireless_device_->getObjectPath(), "/",
|
||||
{{"persist", "volatile"}, {"bind-activation", "dbus-client"}});
|
||||
active_conn = std::make_unique<NetworkManagerActiveConnection>(system_bus_,
|
||||
active_path);
|
||||
active_conn = std::make_unique<networkmanager::ActiveConnection>(
|
||||
system_bus_, active_path);
|
||||
} catch (const sdbus::Error &e) {
|
||||
DBUS_LOG_METHOD_CALL_ERROR(network_manager_, "AddAndActivateConnection2",
|
||||
e);
|
||||
@@ -248,7 +248,7 @@ bool NetworkManagerWifiHotspotMedium::StopWifiHotspot() {
|
||||
DBUS_LOG_PROPERTY_GET_ERROR(wireless_device_, "ActiveAccessPoint", e);
|
||||
}
|
||||
|
||||
auto object_manager = NetworkManagerObjectManager(system_bus_);
|
||||
auto object_manager = networkmanager::ObjectManager(system_bus_);
|
||||
auto active_connection = wireless_device_->GetActiveConnection();
|
||||
if (active_connection == nullptr) {
|
||||
NEARBY_LOGS(ERROR)
|
||||
|
||||
@@ -26,14 +26,14 @@ namespace linux {
|
||||
class NetworkManagerWifiHotspotMedium : public api::WifiHotspotMedium {
|
||||
public:
|
||||
NetworkManagerWifiHotspotMedium(
|
||||
std::shared_ptr<NetworkManager> network_manager,
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager,
|
||||
sdbus::ObjectPath wireless_device_object_path)
|
||||
: system_bus_(network_manager->GetConnection()),
|
||||
wireless_device_(std::make_unique<NetworkManagerWifiMedium>(
|
||||
network_manager, std::move(wireless_device_object_path))),
|
||||
network_manager_(std::move(network_manager)) {}
|
||||
NetworkManagerWifiHotspotMedium(
|
||||
std::shared_ptr<NetworkManager> network_manager,
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager,
|
||||
std::unique_ptr<NetworkManagerWifiMedium> wireless_device)
|
||||
: system_bus_(network_manager->GetConnection()),
|
||||
wireless_device_(std::move(wireless_device)),
|
||||
@@ -63,7 +63,7 @@ class NetworkManagerWifiHotspotMedium : public api::WifiHotspotMedium {
|
||||
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
std::unique_ptr<NetworkManagerWifiMedium> wireless_device_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
};
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
#include <sdbus-c++/IConnection.h>
|
||||
|
||||
#include "internal/platform/implementation/linux/network_manager.h"
|
||||
#include "internal/platform/implementation/linux/network_manager_active_connection.h"
|
||||
#include "internal/platform/implementation/linux/wifi_medium.h"
|
||||
#include "internal/platform/implementation/wifi_hotspot.h"
|
||||
|
||||
namespace nearby {
|
||||
@@ -27,8 +27,8 @@ class NetworkManagerWifiHotspotServerSocket
|
||||
: public api::WifiHotspotServerSocket {
|
||||
public:
|
||||
NetworkManagerWifiHotspotServerSocket(
|
||||
int socket, std::unique_ptr<NetworkManagerActiveConnection> active_conn,
|
||||
std::shared_ptr<NetworkManager> network_manager)
|
||||
int socket, std::unique_ptr<networkmanager::ActiveConnection> active_conn,
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager)
|
||||
: fd_(socket),
|
||||
active_conn_(std::move(active_conn)),
|
||||
network_manager_(std::move(network_manager)) {}
|
||||
@@ -40,8 +40,8 @@ class NetworkManagerWifiHotspotServerSocket
|
||||
|
||||
private:
|
||||
sdbus::UnixFd fd_;
|
||||
std::unique_ptr<NetworkManagerActiveConnection> active_conn_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::unique_ptr<networkmanager::ActiveConnection> active_conn_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
};
|
||||
} // namespace linux
|
||||
} // namespace nearby
|
||||
|
||||
@@ -37,16 +37,16 @@
|
||||
namespace nearby {
|
||||
namespace linux {
|
||||
WifiLanMedium::WifiLanMedium(
|
||||
std::shared_ptr<linux::NetworkManager> network_manager)
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager)
|
||||
: system_bus_(network_manager->GetConnection()),
|
||||
network_manager_(std::move(network_manager)),
|
||||
network_manager_(std::move(network_manager)),
|
||||
avahi_(std::make_shared<avahi::Server>(*system_bus_)) {}
|
||||
|
||||
bool WifiLanMedium::IsNetworkConnected() const {
|
||||
auto state = network_manager_->getState();
|
||||
return state == NetworkManager::kNMStateConnectedLocal ||
|
||||
state == NetworkManager::kNMStateConnectedSite ||
|
||||
state == NetworkManager::kNMStateConnectedGlobal;
|
||||
return state == networkmanager::NetworkManager::kNMStateConnectedLocal ||
|
||||
state == networkmanager::NetworkManager::kNMStateConnectedSite ||
|
||||
state == networkmanager::NetworkManager::kNMStateConnectedGlobal;
|
||||
}
|
||||
|
||||
std::optional<std::pair<std::string, std::string>> entry_group_key(
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace nearby {
|
||||
namespace linux {
|
||||
class WifiLanMedium : public api::WifiLanMedium {
|
||||
public:
|
||||
explicit WifiLanMedium(std::shared_ptr<linux::NetworkManager> network_manager);
|
||||
explicit WifiLanMedium(std::shared_ptr<networkmanager::NetworkManager> network_manager);
|
||||
|
||||
bool IsNetworkConnected() const override;
|
||||
|
||||
@@ -61,7 +61,7 @@ class WifiLanMedium : public api::WifiLanMedium {
|
||||
|
||||
private:
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
|
||||
std::shared_ptr<avahi::Server> avahi_;
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ std::string WifiLanServerSocket::GetIPAddress() const {
|
||||
|
||||
for (auto &path : connection_paths) {
|
||||
auto active_connection =
|
||||
std::make_unique<NetworkManagerActiveConnection>(system_bus_, path);
|
||||
std::make_unique<networkmanager::ActiveConnection>(system_bus_, path);
|
||||
std::string conn_type;
|
||||
try {
|
||||
conn_type = active_connection->Type();
|
||||
@@ -53,7 +53,7 @@ std::string WifiLanServerSocket::GetIPAddress() const {
|
||||
}
|
||||
if (conn_type == "802-11-wireless" || conn_type == "802-3-ethernet") {
|
||||
auto ip4config_path = active_connection->Ip4Config();
|
||||
NetworkManagerIP4Config ip4config(system_bus_, ip4config_path);
|
||||
networkmanager::IP4Config ip4config(system_bus_, ip4config_path);
|
||||
std::vector<std::map<std::string, sdbus::Variant>> address_data;
|
||||
|
||||
try {
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace linux {
|
||||
class WifiLanServerSocket : public api::WifiLanServerSocket {
|
||||
public:
|
||||
explicit WifiLanServerSocket(int socket,
|
||||
std::shared_ptr<NetworkManager> network_manager)
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager)
|
||||
: fd_(sdbus::UnixFd(socket)),
|
||||
network_manager_(std::move(network_manager)),
|
||||
system_bus_(network_manager_->GetConnection()) {}
|
||||
@@ -42,7 +42,7 @@ class WifiLanServerSocket : public api::WifiLanServerSocket {
|
||||
|
||||
private:
|
||||
sdbus::UnixFd fd_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
};
|
||||
} // namespace linux
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
#include "absl/synchronization/mutex.h"
|
||||
#include "internal/platform/implementation/linux/dbus.h"
|
||||
#include "internal/platform/implementation/linux/generated/dbus/networkmanager/connection_active_client.h"
|
||||
#include "internal/platform/implementation/linux/generated/dbus/networkmanager/device_wireless_client.h"
|
||||
#include "internal/platform/implementation/linux/network_manager_active_connection.h"
|
||||
#include "internal/platform/implementation/linux/wifi_medium.h"
|
||||
@@ -77,7 +76,7 @@ api::WifiInformation &NetworkManagerWifiMedium::GetInformation() {
|
||||
information_ =
|
||||
api::WifiInformation{true, ssid, active_access_point->HwAddress(),
|
||||
to_signed(active_access_point->Frequency())};
|
||||
NetworkManagerObjectManager manager(system_bus_);
|
||||
networkmanager::ObjectManager manager(system_bus_);
|
||||
auto ip4config = manager.GetIp4Config(active_access_point->getObjectPath());
|
||||
|
||||
if (ip4config != nullptr) {
|
||||
@@ -291,7 +290,7 @@ api::WifiConnectionStatus NetworkManagerWifiMedium::ConnectToNetwork(
|
||||
NEARBY_LOGS(INFO) << __func__ << ": " << getObjectPath()
|
||||
<< ": Added a new connection at " << connection_path;
|
||||
auto active_connection =
|
||||
NetworkManagerActiveConnection(system_bus_, active_conn_path);
|
||||
networkmanager::ActiveConnection(system_bus_, active_conn_path);
|
||||
auto [reason, timeout] = active_connection.WaitForConnection();
|
||||
if (timeout) {
|
||||
NEARBY_LOGS(ERROR)
|
||||
@@ -307,8 +306,8 @@ api::WifiConnectionStatus NetworkManagerWifiMedium::ConnectToNetwork(
|
||||
<< active_conn_path
|
||||
<< " failed to activate, NMActiveConnectionStateReason:"
|
||||
<< *reason;
|
||||
if (*reason == NetworkManagerActiveConnection::kStateReasonNoSecrets ||
|
||||
*reason == NetworkManagerActiveConnection::kStateReasonLoginFailed)
|
||||
if (*reason == networkmanager::ActiveConnection::kStateReasonNoSecrets ||
|
||||
*reason == networkmanager::ActiveConnection::kStateReasonLoginFailed)
|
||||
return api::WifiConnectionStatus::kAuthFailure;
|
||||
}
|
||||
|
||||
@@ -331,7 +330,7 @@ std::string NetworkManagerWifiMedium::GetIpAddress() {
|
||||
return information_.ip_address_dot_decimal;
|
||||
}
|
||||
|
||||
std::unique_ptr<NetworkManagerActiveConnection>
|
||||
std::unique_ptr<networkmanager::ActiveConnection>
|
||||
NetworkManagerWifiMedium::GetActiveConnection() {
|
||||
sdbus::ObjectPath active_ap_path;
|
||||
|
||||
@@ -347,7 +346,7 @@ NetworkManagerWifiMedium::GetActiveConnection() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto object_manager = NetworkManagerObjectManager(system_bus_);
|
||||
auto object_manager = networkmanager::ObjectManager(system_bus_);
|
||||
auto conn = object_manager.GetActiveConnectionForAccessPoint(active_ap_path,
|
||||
getObjectPath());
|
||||
|
||||
|
||||
@@ -47,8 +47,9 @@ class NetworkManagerWifiMedium
|
||||
NetworkManagerWifiMedium &operator=(const NetworkManagerWifiMedium &) =
|
||||
delete;
|
||||
NetworkManagerWifiMedium &operator=(NetworkManagerWifiMedium &&) = delete;
|
||||
NetworkManagerWifiMedium(std::shared_ptr<NetworkManager> network_manager,
|
||||
const sdbus::ObjectPath &wireless_device_object_path)
|
||||
NetworkManagerWifiMedium(
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager,
|
||||
const sdbus::ObjectPath &wireless_device_object_path)
|
||||
: ProxyInterfaces(*network_manager->GetConnection(),
|
||||
"org.freedesktop.NetworkManager",
|
||||
wireless_device_object_path),
|
||||
@@ -85,7 +86,7 @@ class NetworkManagerWifiMedium
|
||||
bool VerifyInternetConnectivity() override;
|
||||
std::string GetIpAddress() override;
|
||||
|
||||
std::unique_ptr<NetworkManagerActiveConnection> GetActiveConnection();
|
||||
std::unique_ptr<networkmanager::ActiveConnection> GetActiveConnection();
|
||||
|
||||
protected:
|
||||
void onPropertiesChanged(
|
||||
@@ -113,7 +114,7 @@ class NetworkManagerWifiMedium
|
||||
ABSL_LOCKS_EXCLUDED(known_access_points_lock_);
|
||||
|
||||
std::shared_ptr<sdbus::IConnection> system_bus_;
|
||||
std::shared_ptr<NetworkManager> network_manager_;
|
||||
std::shared_ptr<networkmanager::NetworkManager> network_manager_;
|
||||
|
||||
api::WifiCapability capability_;
|
||||
api::WifiInformation information_{false};
|
||||
|
||||
Reference in New Issue
Block a user