diff options
Diffstat (limited to 'src/fbgui/sysinfo.cpp')
-rw-r--r-- | src/fbgui/sysinfo.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/fbgui/sysinfo.cpp b/src/fbgui/sysinfo.cpp index d1ac44f..807413b 100644 --- a/src/fbgui/sysinfo.cpp +++ b/src/fbgui/sysinfo.cpp @@ -41,16 +41,27 @@ SysInfo::~SysInfo() { * @see JavascriptInterface::getSysInfo(const QString& info) */ const QString SysInfo::getInfo(const QString& infoName) { - LOG4CXX_DEBUG(siLogger, "requested " << infoName); if (infoName == QString("mbserial")) return getMainboardSerial(); else if (infoName == QString("usb")) return getUsbVendorIdProductIdSerialNumber(); + else if (infoName == QString("mac")) + return getMACAddress(); /* unknown code */ LOG4CXX_DEBUG(siLogger, "unknown requested"); return "info_error"; } +const QString SysInfo::getMACAddress() { + // Returns MAC address of eth0 for now + LOG4CXX_DEBUG(siLogger, "Requesting MAC of: " << interfaceName << " ..."); + QNetworkInterface qni = QNetworkInterface::interfaceFromName(interfaceName); + if (!qni.isValid()) { + LOG4CXX_DEBUG(siLogger, "No valid interface with name: " << interfaceName); + return "no_interface"; + } + return qni.hardwareAddress(); +} // ----------------------------------------------------------------------------------------------- // Mainboard / USB Infos using libsysfs // ----------------------------------------------------------------------------------------------- @@ -70,6 +81,7 @@ const QString SysInfo::getInfo(const QString& infoName) { * @see SysInfo::getInfo(const QString& infoName) */ const QString SysInfo::getMainboardSerial() { + LOG4CXX_DEBUG(siLogger, "Requesting Mainboard Serial..."); QString out = ""; struct sysfs_class_device *class_device = sysfs_open_class_device("dmi", "id"); @@ -82,6 +94,8 @@ const QString SysInfo::getMainboardSerial() { QVariantMap a; if(QString(attr->name) == QString("board_serial")) { out = QString(attr->value); + if (out.endsWith("\n")) + out.chop(1); } } LOG4CXX_DEBUG(siLogger, "Mainboard Serial: " + out); @@ -200,11 +214,4 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() { } libusb_free_device_list(devs, 1); //free the list, unref the devices in it libusb_exit(ctx); //close the session - - - /* - QByteArray json = serializer.serialize(list); - LOG4CXX_DEBUG(siLogger, tag + "json object: " + json); - return json; - */ } |