Merge PR #32: Add wireless network device capabilities
commit
d92324fce9
|
|
@ -260,6 +260,10 @@ NetworkManager::NetworkManagerError NetworkManager::startAccessPoint(const QStri
|
|||
if (!wirelessNetworkDevice)
|
||||
return NetworkManagerErrorInvalidNetworkDeviceType;
|
||||
|
||||
|
||||
if (!wirelessNetworkDevice->wirelessCapabilities().testFlag(WirelessNetworkDevice::WirelessCapabilityAP))
|
||||
return NetworkManagerErrorUnsupportedFeature;
|
||||
|
||||
// Note: https://developer.gnome.org/NetworkManager/stable/ref-settings.html
|
||||
|
||||
// Create network settings for access point
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ public:
|
|||
NetworkManagerErrorNetworkingDisabled,
|
||||
NetworkManagerErrorNetworkManagerNotAvailable,
|
||||
NetworkManagerErrorInvalidConfiguration,
|
||||
NetworkManagerErrorUnsupportedFeature
|
||||
};
|
||||
Q_ENUM(NetworkManagerError)
|
||||
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ WirelessNetworkDevice::WirelessNetworkDevice(const QDBusObjectPath &objectPath,
|
|||
readAccessPoints();
|
||||
|
||||
m_macAddress = m_wirelessInterface->property("HwAddress").toString();
|
||||
m_wirelessCapabilities = static_cast<WirelessCapabilities>(m_wirelessInterface->property("WirelessCapabilities").toUInt());
|
||||
m_wirelessMode = static_cast<WirelessMode>(m_wirelessInterface->property("Mode").toUInt());
|
||||
m_bitRate = m_wirelessInterface->property("Bitrate").toInt() / 1000;
|
||||
setActiveAccessPoint(qdbus_cast<QDBusObjectPath>(m_wirelessInterface->property("ActiveAccessPoint")));
|
||||
|
|
@ -107,6 +108,11 @@ int WirelessNetworkDevice::bitRate() const
|
|||
return m_bitRate;
|
||||
}
|
||||
|
||||
WirelessNetworkDevice::WirelessCapabilities WirelessNetworkDevice::wirelessCapabilities() const
|
||||
{
|
||||
return m_wirelessCapabilities;
|
||||
}
|
||||
|
||||
WirelessNetworkDevice::WirelessMode WirelessNetworkDevice::wirelessMode() const
|
||||
{
|
||||
return m_wirelessMode;
|
||||
|
|
@ -236,6 +242,11 @@ void WirelessNetworkDevice::processProperties(const QVariantMap &properties)
|
|||
emit wirelessModeChanged(m_wirelessMode);
|
||||
}
|
||||
|
||||
if (properties.contains("WirelessCapabilities")) {
|
||||
m_wirelessCapabilities = static_cast<WirelessCapabilities>(m_wirelessInterface->property("WirelessCapabilities").toUInt());
|
||||
emit wirelessCapabilitiesChanged(m_wirelessCapabilities);
|
||||
}
|
||||
|
||||
// Note: available since 1.12 (-1 means never scanned)
|
||||
if (properties.contains("LastScan")) {
|
||||
m_lastScan = m_wirelessInterface->property("LastScan").toInt();
|
||||
|
|
@ -262,6 +273,7 @@ QDebug operator<<(QDebug debug, WirelessNetworkDevice *device)
|
|||
{
|
||||
debug.nospace() << "WirelessNetworkDevice(" << device->interface() << ", ";
|
||||
debug.nospace() << device->macAddress() << ", ";
|
||||
debug.nospace() << device->wirelessCapabilities() << ", ";
|
||||
debug.nospace() << device->wirelessMode() << ", ";
|
||||
debug.nospace() << device->bitRate() << " [Mb/s], ";
|
||||
debug.nospace() << device->deviceStateString() << ") ";
|
||||
|
|
|
|||
|
|
@ -54,11 +54,30 @@ public:
|
|||
};
|
||||
Q_ENUM(WirelessMode)
|
||||
|
||||
enum WirelessCapability {
|
||||
WirelessCapabilityNone = 0x0000,
|
||||
WirelessCapabilityCipherWEP40 = 0x0001,
|
||||
WirelessCapabilityCipherWEP104 = 0x0002,
|
||||
WirelessCapabilityCipherTKIP = 0x0004,
|
||||
WirelessCapabilityCipherCCMP = 0x0008,
|
||||
WirelessCapabilityWPA = 0x0010,
|
||||
WirelessCapabilityRSN = 0x0020,
|
||||
WirelessCapabilityAP = 0x0040,
|
||||
WirelessCapabilityAdHoc = 0x0080,
|
||||
WirelessCapabilityFreqValid = 0x0100,
|
||||
WirelessCapability2Ghz = 0x0200,
|
||||
WirelessCapability5Ghz = 0x0400,
|
||||
};
|
||||
Q_ENUM(WirelessCapability)
|
||||
Q_DECLARE_FLAGS(WirelessCapabilities, WirelessCapability)
|
||||
Q_FLAG(WirelessCapabilities)
|
||||
|
||||
explicit WirelessNetworkDevice(const QDBusObjectPath &objectPath, QObject *parent = nullptr);
|
||||
|
||||
// Properties
|
||||
QString macAddress() const;
|
||||
int bitRate() const;
|
||||
WirelessCapabilities wirelessCapabilities() const;
|
||||
WirelessMode wirelessMode() const;
|
||||
WirelessAccessPoint *activeAccessPoint();
|
||||
|
||||
|
|
@ -72,6 +91,7 @@ public:
|
|||
|
||||
signals:
|
||||
void bitRateChanged(int bitRate);
|
||||
void wirelessCapabilitiesChanged(WirelessCapabilities wirelessCapabilities);
|
||||
void wirelessModeChanged(WirelessMode mode);
|
||||
void lastScanChanged(int lastScan);
|
||||
|
||||
|
|
@ -87,6 +107,7 @@ private:
|
|||
|
||||
int m_bitRate;
|
||||
QString m_macAddress;
|
||||
WirelessCapabilities m_wirelessCapabilities = WirelessCapabilityNone;
|
||||
WirelessMode m_wirelessMode = WirelessModeUnknown;
|
||||
int m_lastScan = -1;
|
||||
QDBusObjectPath m_activeAccessPointObjectPath;
|
||||
|
|
|
|||
Loading…
Reference in New Issue