diff --git a/autotests/settings/wirelesssettingtest.cpp b/autotests/settings/wirelesssettingtest.cpp index cbab171..34e8ac4 100644 --- a/autotests/settings/wirelesssettingtest.cpp +++ b/autotests/settings/wirelesssettingtest.cpp @@ -1,139 +1,141 @@ /* Copyright 2012-2013 Jan Grulich This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) version 3, or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 6 of version 3 of the license. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #include "wirelesssettingtest.h" #include "settings/wirelesssetting.h" #include +#define NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS "assigned-mac-address" + #if !NM_CHECK_VERSION(1, 2, 0) #define NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION "mac-address-randomization" #define NM_SETTING_WIRELESS_POWERSAVE "powersave" #endif #if !NM_CHECK_VERSION(1, 4, 0) #define NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK "generate-mac-address-mask" #endif #include void WirelessSettingTest::testSetting_data() { QTest::addColumn("ssid"); QTest::addColumn("mode"); QTest::addColumn("band"); QTest::addColumn("channel"); QTest::addColumn("bssid"); QTest::addColumn("rate"); QTest::addColumn("txPower"); QTest::addColumn("macAddress"); - QTest::addColumn("clonedMacAddress"); QTest::addColumn("generateMacAddressMask"); QTest::addColumn("macAddressBlacklist"); QTest::addColumn("macAddressRandomization"); QTest::addColumn("mtu"); QTest::addColumn("seenBssids"); QTest::addColumn("powerSave"); QTest::addColumn("security"); QTest::addColumn("hidden"); + QTest::addColumn("assignedMacAddress"); QStringList macAddressBlacklist; macAddressBlacklist << "00:08:C7:1B:8C:02"; QStringList seenBssids; seenBssids << "0005.9a3e.7c0f"; QTest::newRow("setting1") << QByteArray("test") // ssid << QString("adhoc") // mode << QString("bg") // band << (quint32)1 // channel << QByteArray("0011.2161.b7c0") // bssid << (quint32)2 // rate << (quint32)3 // txPower << QByteArray("00-B0-D0-86-BB-F7") // macAddress - << QByteArray("00-14-22-01-23-4") // clonedMacAddress << QString("FE:FF:FF:00:00:00 68:F7:28:00:00:00") // generateMacAddressMask << macAddressBlacklist // macAddressBlacklist << (uint) 1 // macAddressRandomization << (quint32)4 // mtu << seenBssids // seenBssids << (uint) 2 // powerSave << QString("802-11-wireless-security") // security - << true; // hidden + << true // hidden + << QString("random"); // assignedMacAddress } void WirelessSettingTest::testSetting() { QFETCH(QByteArray, ssid); QFETCH(QString, mode); QFETCH(QString, band); QFETCH(quint32, channel); QFETCH(QByteArray, bssid); QFETCH(quint32, rate); QFETCH(quint32, txPower); QFETCH(QByteArray, macAddress); - QFETCH(QByteArray, clonedMacAddress); QFETCH(QString, generateMacAddressMask); QFETCH(QStringList, macAddressBlacklist); QFETCH(uint, macAddressRandomization); QFETCH(quint32, mtu); QFETCH(QStringList, seenBssids); QFETCH(uint, powerSave); QFETCH(QString, security); QFETCH(bool, hidden); + QFETCH(QString, assignedMacAddress); QVariantMap map; map.insert(QLatin1String(NM_SETTING_WIRELESS_SSID), ssid); map.insert(QLatin1String(NM_SETTING_WIRELESS_MODE), mode); map.insert(QLatin1String(NM_SETTING_WIRELESS_BAND), band); map.insert(QLatin1String(NM_SETTING_WIRELESS_CHANNEL), channel); map.insert(QLatin1String(NM_SETTING_WIRELESS_BSSID), bssid); map.insert(QLatin1String(NM_SETTING_WIRELESS_RATE), rate); map.insert(QLatin1String(NM_SETTING_WIRELESS_TX_POWER), txPower); map.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS), macAddress); - map.insert(QLatin1String(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS), clonedMacAddress); map.insert(QLatin1String(NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK), generateMacAddressMask); map.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST), macAddressBlacklist); map.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION), macAddressRandomization); map.insert(QLatin1String(NM_SETTING_WIRELESS_MTU), mtu); map.insert(QLatin1String(NM_SETTING_WIRELESS_SEEN_BSSIDS), seenBssids); map.insert(QLatin1String(NM_SETTING_WIRELESS_POWERSAVE), powerSave); map.insert(QLatin1String("security"), security); map.insert(QLatin1String(NM_SETTING_WIRELESS_HIDDEN), hidden); + map.insert(QLatin1String(NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS), assignedMacAddress); NetworkManager::WirelessSetting setting; setting.fromMap(map); QVariantMap map1 = setting.toMap(); // Will fail if set some default values, because they are skipped in toMap() method QVariantMap::const_iterator it = map.constBegin(); while (it != map.constEnd()) { QCOMPARE(it.value(), map1.value(it.key())); ++it; } } QTEST_MAIN(WirelessSettingTest) diff --git a/src/settings/wirelesssetting.cpp b/src/settings/wirelesssetting.cpp index f2e5942..6eb7035 100644 --- a/src/settings/wirelesssetting.cpp +++ b/src/settings/wirelesssetting.cpp @@ -1,515 +1,537 @@ /* Copyright 2012-2013 Jan Grulich This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) version 3, or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 6 of version 3 of the license. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #include "wirelesssetting.h" #include "wirelesssetting_p.h" +#include "utils.h" + //define the deprecated&dropped values #define NM_SETTING_WIRELESS_SEC "security" +#define NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS "assigned-mac-address" #if !NM_CHECK_VERSION(1, 2, 0) #define NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION "mac-address-randomization" #define NM_SETTING_WIRELESS_POWERSAVE "powersave" #endif #if !NM_CHECK_VERSION(1, 4, 0) #define NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK "generate-mac-address-mask" #endif #include NetworkManager::WirelessSettingPrivate::WirelessSettingPrivate() : name(NM_SETTING_WIRELESS_SETTING_NAME) , mode(NetworkManager::WirelessSetting::Infrastructure) , band(NetworkManager::WirelessSetting::Automatic) , channel(0) , rate(0) , txPower(0) , mtu(0) , hidden(false) , macAddressRandomization(NetworkManager::Setting::MacAddressRandomizationDefault) , powersave(NetworkManager::WirelessSetting::PowerSaveDefault) { } NetworkManager::WirelessSetting::WirelessSetting() : Setting(Setting::Wireless) , d_ptr(new WirelessSettingPrivate()) { } NetworkManager::WirelessSetting::WirelessSetting(const Ptr &setting) : Setting(setting) , d_ptr(new WirelessSettingPrivate) { setSsid(setting->ssid()); setMode(setting->mode()); setBand(setting->band()); setChannel(setting->channel()); setBssid(setting->bssid()); setRate(setting->rate()); setTxPower(setting->txPower()); setMacAddress(setting->macAddress()); setGenerateMacAddressMask(setting->generateMacAddressMask()); setClonedMacAddress(setting->clonedMacAddress()); setMacAddressBlacklist(setting->macAddressBlacklist()); setMacAddressRandomization(setting->macAddressRandomization()); setMtu(setting->mtu()); setSeenBssids(setting->seenBssids()); setPowerSave(setting->powerSave()); setSecurity(setting->security()); setHidden(setting->hidden()); + setAssignedMacAddress(setting->assignedMacAddress()); } NetworkManager::WirelessSetting::~WirelessSetting() { delete d_ptr; } QString NetworkManager::WirelessSetting::name() const { Q_D(const WirelessSetting); return d->name; } void NetworkManager::WirelessSetting::setSsid(const QByteArray &ssid) { Q_D(WirelessSetting); d->ssid = ssid; } QByteArray NetworkManager::WirelessSetting::ssid() const { Q_D(const WirelessSetting); return d->ssid; } void NetworkManager::WirelessSetting::setMode(NetworkManager::WirelessSetting::NetworkMode mode) { Q_D(WirelessSetting); d->mode = mode; } NetworkManager::WirelessSetting::NetworkMode NetworkManager::WirelessSetting::mode() const { Q_D(const WirelessSetting); return d->mode; } void NetworkManager::WirelessSetting::setBand(NetworkManager::WirelessSetting::FrequencyBand band) { Q_D(WirelessSetting); d->band = band; } NetworkManager::WirelessSetting::FrequencyBand NetworkManager::WirelessSetting::band() const { Q_D(const WirelessSetting); return d->band; } void NetworkManager::WirelessSetting::setChannel(quint32 channel) { Q_D(WirelessSetting); d->channel = channel; } quint32 NetworkManager::WirelessSetting::channel() const { Q_D(const WirelessSetting); return d->channel; } void NetworkManager::WirelessSetting::setBssid(const QByteArray &bssid) { Q_D(WirelessSetting); d->bssid = bssid; } QByteArray NetworkManager::WirelessSetting::bssid() const { Q_D(const WirelessSetting); return d->bssid; } void NetworkManager::WirelessSetting::setRate(quint32 rate) { Q_D(WirelessSetting); d->rate = rate; } quint32 NetworkManager::WirelessSetting::rate() const { Q_D(const WirelessSetting); return d->rate; } void NetworkManager::WirelessSetting::setTxPower(quint32 power) { Q_D(WirelessSetting); d->txPower = power; } quint32 NetworkManager::WirelessSetting::txPower() const { Q_D(const WirelessSetting); return d->txPower; } +void NetworkManager::WirelessSetting::setAssignedMacAddress(const QString &assignedMacAddress) +{ + Q_D(WirelessSetting); + + d->assignedMacAddress = assignedMacAddress; +} + +QString NetworkManager::WirelessSetting::assignedMacAddress() const +{ + Q_D(const WirelessSetting); + + return d->assignedMacAddress; +} + void NetworkManager::WirelessSetting::setMacAddress(const QByteArray &address) { Q_D(WirelessSetting); d->macAddress = address; } QByteArray NetworkManager::WirelessSetting::macAddress() const { Q_D(const WirelessSetting); return d->macAddress; } void NetworkManager::WirelessSetting::setClonedMacAddress(const QByteArray &address) { Q_D(WirelessSetting); - d->clonedMacAddress = address; + d->assignedMacAddress = NetworkManager::macAddressAsString(address); } QByteArray NetworkManager::WirelessSetting::clonedMacAddress() const { Q_D(const WirelessSetting); - return d->clonedMacAddress; + return NetworkManager::macAddressFromString(d->assignedMacAddress.toUtf8()); } void NetworkManager::WirelessSetting::setGenerateMacAddressMask(const QString& macAddressMask) { Q_D(WirelessSetting); d->generateMacAddressMask = macAddressMask; } QString NetworkManager::WirelessSetting::generateMacAddressMask() const { Q_D(const WirelessSetting); return d->generateMacAddressMask; } void NetworkManager::WirelessSetting::setMacAddressBlacklist(const QStringList &list) { Q_D(WirelessSetting); d->macAddressBlacklist = list; } QStringList NetworkManager::WirelessSetting::macAddressBlacklist() const { Q_D(const WirelessSetting); return d->macAddressBlacklist; } void NetworkManager::WirelessSetting::setMacAddressRandomization(NetworkManager::Setting::MacAddressRandomization randomization) { Q_D(WirelessSetting); d->macAddressRandomization = randomization; } NetworkManager::Setting::MacAddressRandomization NetworkManager::WirelessSetting::macAddressRandomization() const { Q_D(const WirelessSetting); return d->macAddressRandomization; } void NetworkManager::WirelessSetting::setMtu(quint32 mtu) { Q_D(WirelessSetting); d->mtu = mtu; } quint32 NetworkManager::WirelessSetting::mtu() const { Q_D(const WirelessSetting); return d->mtu; } void NetworkManager::WirelessSetting::setSeenBssids(const QStringList &list) { Q_D(WirelessSetting); d->seenBssids = list; } QStringList NetworkManager::WirelessSetting::seenBssids() const { Q_D(const WirelessSetting); return d->seenBssids; } void NetworkManager::WirelessSetting::setPowerSave(NetworkManager::WirelessSetting::PowerSave powersave) { Q_D(WirelessSetting); d->powersave = powersave; } NetworkManager::WirelessSetting::PowerSave NetworkManager::WirelessSetting::powerSave() const { Q_D(const WirelessSetting); return d->powersave; } void NetworkManager::WirelessSetting::setSecurity(const QString &security) { Q_D(WirelessSetting); d->security = security; } QString NetworkManager::WirelessSetting::security() const { Q_D(const WirelessSetting); return d->security; } void NetworkManager::WirelessSetting::setHidden(bool hidden) { Q_D(WirelessSetting); d->hidden = hidden; } bool NetworkManager::WirelessSetting::hidden() const { Q_D(const WirelessSetting); return d->hidden; } void NetworkManager::WirelessSetting::fromMap(const QVariantMap &setting) { if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_SSID))) { setSsid(setting.value(QLatin1String(NM_SETTING_WIRELESS_SSID)).toByteArray()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_MODE))) { const QString mode = setting.value(QLatin1String(NM_SETTING_WIRELESS_MODE)).toString(); if (mode == QLatin1String(NM_SETTING_WIRELESS_MODE_INFRA)) { setMode(Infrastructure); } else if (mode == QLatin1String(NM_SETTING_WIRELESS_MODE_ADHOC)) { setMode(Adhoc); } else if (mode == QLatin1String(NM_SETTING_WIRELESS_MODE_AP)) { setMode(Ap); } } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_BAND))) { const QString band = setting.value(QLatin1String(NM_SETTING_WIRELESS_BAND)).toString(); if (band == "a") { setBand(A); } else if (band == "bg") { setBand(Bg); } } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_CHANNEL))) { setChannel(setting.value(QLatin1String(NM_SETTING_WIRELESS_CHANNEL)).toUInt()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_BSSID))) { setBssid(setting.value(QLatin1String(NM_SETTING_WIRELESS_BSSID)).toByteArray()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_RATE))) { setRate(setting.value(QLatin1String(NM_SETTING_WIRELESS_RATE)).toUInt()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_TX_POWER))) { setTxPower(setting.value(QLatin1String(NM_SETTING_WIRELESS_TX_POWER)).toUInt()); } + if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS))) { + setAssignedMacAddress(setting.value(QLatin1String(NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS)).toString()); + } + if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS))) { setMacAddress(setting.value(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS)).toByteArray()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK))) { setGenerateMacAddressMask(setting.value(QLatin1String(NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK)).toString()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS))) { setClonedMacAddress(setting.value(QLatin1String(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS)).toByteArray()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST))) { setMacAddressBlacklist(setting.value(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST)).toStringList()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION))) { setMacAddressRandomization(static_cast(setting.value(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION)).toUInt())); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_MTU))) { setMtu(setting.value(QLatin1String(NM_SETTING_WIRELESS_MTU)).toUInt()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_SEEN_BSSIDS))) { setSeenBssids(setting.value(QLatin1String(NM_SETTING_WIRELESS_SEEN_BSSIDS)).toStringList()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_POWERSAVE))) { setPowerSave(static_cast(setting.value(QLatin1String(NM_SETTING_WIRELESS_POWERSAVE)).toUInt())); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_SEC))) { setSecurity(setting.value(QLatin1String(NM_SETTING_WIRELESS_SEC)).toString()); } if (setting.contains(QLatin1String(NM_SETTING_WIRELESS_HIDDEN))) { setHidden(setting.value(QLatin1String(NM_SETTING_WIRELESS_HIDDEN)).toBool()); } } QVariantMap NetworkManager::WirelessSetting::toMap() const { QVariantMap setting; if (!ssid().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_SSID), ssid()); } if (mode() == Infrastructure) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MODE), QLatin1String(NM_SETTING_WIRELESS_MODE_INFRA)); } else if (mode() == Adhoc) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MODE), QLatin1String(NM_SETTING_WIRELESS_MODE_ADHOC)); } else if (mode() == Ap) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MODE), QLatin1String(NM_SETTING_WIRELESS_MODE_AP)); } if (band() != Automatic) { if (band() == A) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_BAND), "a"); } else if (band() == Bg) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_BAND), "bg"); } } if (channel()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_CHANNEL), channel()); } if (!bssid().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_BSSID), bssid()); } if (rate()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_RATE), rate()); } if (txPower()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_TX_POWER), txPower()); } + if (!assignedMacAddress().isEmpty()) { + setting.insert(QLatin1String(NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS), assignedMacAddress()); + } + if (!macAddress().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS), macAddress()); } if (!generateMacAddressMask().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK), generateMacAddressMask()); } - if (!clonedMacAddress().isEmpty()) { - setting.insert(QLatin1String(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS), clonedMacAddress()); - } - if (!macAddressBlacklist().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST), macAddressBlacklist()); } setting.insert(QLatin1String(NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION), macAddressRandomization()); if (mtu()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_MTU), mtu()); } if (!seenBssids().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_SEEN_BSSIDS), seenBssids()); } setting.insert(QLatin1String(NM_SETTING_WIRELESS_POWERSAVE), powerSave()); if (!security().isEmpty()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_SEC), security()); } if (hidden()) { setting.insert(QLatin1String(NM_SETTING_WIRELESS_HIDDEN), hidden()); } return setting; } QDebug NetworkManager::operator <<(QDebug dbg, const NetworkManager::WirelessSetting &setting) { dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_SSID << ": " << setting.ssid() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_MODE << ": " << setting.mode() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_BAND << ": " << setting.band() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_CHANNEL << ": " << setting.channel() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_BSSID << ": " << setting.bssid() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_RATE << ": " << setting.rate() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_TX_POWER << ": " << setting.txPower() << '\n'; + dbg.nospace() << NM_SETTING_WIRELESS_ASSIGNED_MAC_ADDRESS << ": " << setting.assignedMacAddress() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_MAC_ADDRESS << ": " << setting.macAddress() << '\n'; - dbg.nospace() << NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS << ": " << setting.clonedMacAddress() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK << ": " << setting.generateMacAddressMask() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST << ": " << setting.macAddressBlacklist() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION << ": " << setting.macAddressRandomization() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_MTU << ": " << setting.mtu() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_SEEN_BSSIDS << ": " << setting.seenBssids() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_POWERSAVE << ": " << setting.powerSave() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_SEC << ": " << setting.security() << '\n'; dbg.nospace() << NM_SETTING_WIRELESS_HIDDEN << ": " << setting.hidden() << '\n'; return dbg.maybeSpace(); } diff --git a/src/settings/wirelesssetting.h b/src/settings/wirelesssetting.h index 84860b7..83aa14d 100644 --- a/src/settings/wirelesssetting.h +++ b/src/settings/wirelesssetting.h @@ -1,137 +1,141 @@ /* Copyright 2012-2013 Jan Grulich This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) version 3, or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 6 of version 3 of the license. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #ifndef NETWORKMANAGERQT_WIRELESS_SETTING_H #define NETWORKMANAGERQT_WIRELESS_SETTING_H #include #include "setting.h" #include #include namespace NetworkManager { class WirelessSettingPrivate; /** * Represents wireless setting */ class NETWORKMANAGERQT_EXPORT WirelessSetting : public Setting { public: typedef QSharedPointer Ptr; typedef QList List; enum NetworkMode { Infrastructure, Adhoc, Ap }; enum FrequencyBand { Automatic, A, Bg }; enum PowerSave { PowerSaveDefault = 0, PowerSaveIgnore = 1, PowerSaveDisable = 2, PowerSaveEnable = 3 }; WirelessSetting(); explicit WirelessSetting(const Ptr &setting); virtual ~WirelessSetting(); QString name() const Q_DECL_OVERRIDE; void setSsid(const QByteArray &ssid); QByteArray ssid() const; void setMode(NetworkMode mode); NetworkMode mode() const; void setBand(FrequencyBand band); FrequencyBand band() const; void setChannel(quint32 channel); quint32 channel() const; void setBssid(const QByteArray &bssid); QByteArray bssid() const; void setRate(quint32 rate); quint32 rate() const; void setTxPower(quint32 power); quint32 txPower() const; + void setAssignedMacAddress(const QString &assignedMacAddress); + QString assignedMacAddress() const; + void setMacAddress(const QByteArray &address); QByteArray macAddress() const; + /// @deprecated since NM 1.4.0, will internally use assigned-mac-address property void setClonedMacAddress(const QByteArray &address); QByteArray clonedMacAddress() const; void setGenerateMacAddressMask(const QString &macAddressMask); QString generateMacAddressMask() const; void setMacAddressBlacklist(const QStringList &list); QStringList macAddressBlacklist() const; void setMacAddressRandomization(MacAddressRandomization randomization); MacAddressRandomization macAddressRandomization() const; void setMtu(quint32 mtu); quint32 mtu() const; void setSeenBssids(const QStringList &list); QStringList seenBssids() const; void setPowerSave(PowerSave powersave); PowerSave powerSave() const; /// @deprecated since NM 1.0.0 void setSecurity(const QString &security); QString security() const; void setHidden(bool hidden); bool hidden() const; void fromMap(const QVariantMap &setting) Q_DECL_OVERRIDE; QVariantMap toMap() const Q_DECL_OVERRIDE; protected: WirelessSettingPrivate *d_ptr; private: Q_DECLARE_PRIVATE(WirelessSetting) }; NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WirelessSetting &setting); } #endif // NETWORKMANAGERQT_WIRELESS_SETTING_H diff --git a/src/settings/wirelesssetting_p.h b/src/settings/wirelesssetting_p.h index 7c5249c..bbbf85a 100644 --- a/src/settings/wirelesssetting_p.h +++ b/src/settings/wirelesssetting_p.h @@ -1,57 +1,58 @@ /* Copyright 2012-2013 Jan Grulich This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) version 3, or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 6 of version 3 of the license. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #ifndef NETWORKMANAGERQT_WIRELESS_SETTING_P_H #define NETWORKMANAGERQT_WIRELESS_SETTING_P_H #include namespace NetworkManager { class WirelessSettingPrivate { public: WirelessSettingPrivate(); QString name; QByteArray ssid; NetworkManager::WirelessSetting::NetworkMode mode; NetworkManager::WirelessSetting::FrequencyBand band; quint32 channel; QByteArray bssid; quint32 rate; quint32 txPower; QByteArray macAddress; QByteArray clonedMacAddress; QStringList macAddressBlacklist; quint32 mtu; QStringList seenBssids; QString security; bool hidden; QString generateMacAddressMask; NetworkManager::Setting::MacAddressRandomization macAddressRandomization; NetworkManager::WirelessSetting::PowerSave powersave; + QString assignedMacAddress; }; } #endif // NETWORKMANAGERQT_WIRELESS_SETTING_P_H