[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: [Network Management] [PATCH] Fix decoding connection MAC address to string and enable MAC address ma
From: Sebastian Krzyszkowiak <dos () dosowisko ! net>
Date: 2012-08-18 1:15:34
Message-ID: 1345252534-18430-1-git-send-email-dos () dosowisko ! net
[Download RAW message or body]
Thanks to that UI doesn't display connections that cannot be used on specified \
interface.
BUG: 298974
Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
---
.../service/networkinterfaceactivatableprovider.cpp | 19 +++++++++++++++----
libs/service/networkinterfaceactivatableprovider.h | 1 +
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/libs/service/networkinterfaceactivatableprovider.cpp \
b/libs/service/networkinterfaceactivatableprovider.cpp index 1d41432..fd33930 100644
--- a/libs/service/networkinterfaceactivatableprovider.cpp
+++ b/libs/service/networkinterfaceactivatableprovider.cpp
@@ -148,6 +148,19 @@ bool \
NetworkInterfaceActivatableProvider::matches(Knm::Connection::Type connType ); /* \
TODO: implement Bluetooth Cdma, Wimax, LTE */ }
+QString NetworkInterfaceActivatableProvider::macByteArrayToString(QByteArray array) \
{ + QString mac = "";
+ for (int i=0; i<array.length(); i++) {
+ unsigned char num = array[i];
+ if (num<16) mac.append("0");
+ mac.append(QString::number(num, 16).toUpper());
+ if (i<array.length()-1) {
+ mac.append(':');
+ }
+ }
+ return mac;
+}
+
bool NetworkInterfaceActivatableProvider::hardwareAddressMatches(Knm::Connection * \
connection, Solid::Control::NetworkInterfaceNm09 * iface) {
bool matches = true;
@@ -156,7 +169,6 @@ bool \
NetworkInterfaceActivatableProvider::hardwareAddressMatches(Knm::Connection
// todo figure out how to convert from the struct ether_addr.ether_addr_octet \
contained in the
// hardware address from system-provided connections. This probably also means \
the encoding // used in the connections we put on the bus is wrong.
-#if 0
if (connection->type() == Knm::Connection::Wired) {
Knm::WiredSetting * wiredSetting = dynamic_cast<Knm::WiredSetting \
*>(connection->setting(Knm::Setting::Wired));
Solid::Control::WiredNetworkInterfaceNm09 * wiredIface = \
dynamic_cast<Solid::Control::WiredNetworkInterfaceNm09 *>(iface); @@ -165,7 +177,7 @@ \
bool NetworkInterfaceActivatableProvider::hardwareAddressMatches(Knm::Connection
// only settings which contain a valid macaddress are interesting
if (!wiredSetting->macaddress().isEmpty()) {
- matches = (QString(wiredSetting->macaddress()) == \
wiredIface->hardwareAddress()); + matches = \
(macByteArrayToString(wiredSetting->macaddress()) == wiredIface->hardwareAddress()); \
} }
} else if (connection->type() == Knm::Connection::Wireless) {
@@ -176,11 +188,10 @@ bool \
NetworkInterfaceActivatableProvider::hardwareAddressMatches(Knm::Connection
// only settings which contain a valid macaddress are interesting
if (!wirelessSetting->macaddress().isEmpty()) {
- matches = (QString(wirelessSetting->macaddress()) == \
wirelessIface->hardwareAddress()); + matches = \
(macByteArrayToString(wirelessSetting->macaddress()) == \
wirelessIface->hardwareAddress()); }
}
}
-#endif
return matches;
}
diff --git a/libs/service/networkinterfaceactivatableprovider.h \
b/libs/service/networkinterfaceactivatableprovider.h index 9dc995f..d11a006 100644
--- a/libs/service/networkinterfaceactivatableprovider.h
+++ b/libs/service/networkinterfaceactivatableprovider.h
@@ -62,6 +62,7 @@ class KNM_EXPORT NetworkInterfaceActivatableProvider : public \
QObject, virtual p {
Q_OBJECT
public:
+ static QString macByteArrayToString(QByteArray array);
static bool hardwareAddressMatches(Knm::Connection * connection, \
Solid::Control::NetworkInterfaceNm09 * iface); static bool \
matches(Knm::Connection::Type connType, Solid::Control::NetworkInterfaceNm09::Type \
ifaceType, Solid::Control::ModemNetworkInterfaceNm09::ModemCapabilities modemCaps = \
Solid::Control::ModemNetworkInterfaceNm09::None);
--
1.7.10.4
> > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic