diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fbgui.cpp | 9 | ||||
| -rw-r--r-- | src/sysinfo.cpp | 43 | ||||
| -rw-r--r-- | src/sysinfo.h | 11 | ||||
| -rw-r--r-- | src/sysinfolibsysfs.cpp | 2 |
4 files changed, 54 insertions, 11 deletions
diff --git a/src/fbgui.cpp b/src/fbgui.cpp index 494c4e8..e18603c 100644 --- a/src/fbgui.cpp +++ b/src/fbgui.cpp @@ -22,9 +22,12 @@ int debugMode = -1; fbgui::fbgui() { // test for libsys function - SysInfoLibsysfs* sil = new SysInfoLibsysfs(); + //SysInfoLibsysfs* sil = new SysInfoLibsysfs(); //sil->getInfoAboutNetworkInterface(); - sil->getInfoMainboardSerial(); + //sil->getInfoMainboardSerial(); + SysInfo si; + si.getInfo("mbserial"); + setupLayout(); createActions(); @@ -176,6 +179,8 @@ QByteArray fbgui::generatePOSTData() // use MAC address as base data SysInfo si; QByteArray data(si.getInfo("mac").toUtf8()); + // append mainboard serial to the mac address for more unique hardwarehash + data.append(si.getInfo("mbserial").toUtf8()); qxtLog->debug() << "[post] Hashing: " << data; // generate MD5 hash of data QByteArray hash = QCryptographicHash::hash(data, QCryptographicHash::Md5); diff --git a/src/sysinfo.cpp b/src/sysinfo.cpp index e1aa88c..57703ae 100644 --- a/src/sysinfo.cpp +++ b/src/sysinfo.cpp @@ -7,16 +7,19 @@ SysInfo::SysInfo(){} SysInfo::~SysInfo(){} // ------------------------------------------------------------------------------------------------ const QString SysInfo::getInfo(const QString& infoName){ - qxtLog->debug() << "[si] requested " << infoName; + qxtLog->debug() << "[sysinfo] requested " << infoName; if (infoName == QString("mac")) return getMACAddress(); else if (infoName == QString("ip")) return getIPAddress(); else if (infoName == QString("all")) return getAllInfos(); + else if (infoName == QString("mbserial")) + return getMainboardSerial(); else if (infoName == QString("json")) return getNames(); /* unknown code */ + qxtLog->debug() << "[sysinfo] unknown requested"; return "info_error"; } // ------------------------------------------------------------------------------------------------ @@ -24,7 +27,7 @@ const QString SysInfo::getMACAddress(){ // Returns MAC address of eth0 for now QNetworkInterface qni = QNetworkInterface::interfaceFromName(QString("eth0")); if (!qni.isValid()){ - qxtLog->debug() << "No interface matching \"eth0\" found."; + qxtLog->debug() << "[sysinfo] MAC Address: No interface matching \"eth0\" found."; return "no_eth0"; } //eth0_index = qni.index(); @@ -43,7 +46,7 @@ const QString SysInfo::getIPAddress(){ } } // still here? - qxtLog->debug() << "ip_error"; + qxtLog->debug() << "[sysinfo] IP Address: ip_error"; return "ip_error"; } // ------------------------------------------------------------------------------------------------ @@ -82,14 +85,38 @@ QString SysInfo::getAllInfos(){ return json; } // ------------------------------------------------------------------------------------------------ +const QString SysInfo::getMainboardSerial(){ + QString out = ""; + struct sysfs_class_device *class_device = sysfs_open_class_device("dmi","id"); + struct dlist *attrlist = sysfs_get_classdev_attributes(class_device); + struct sysfs_device *device = sysfs_get_classdev_device(class_device); + + if(attrlist != NULL){ + struct sysfs_attribute *attr = NULL; + dlist_for_each_data(attrlist, attr, struct sysfs_attribute) { + QVariantMap a; + if(QString(attr->name) == QString("board_serial")){ + out = QString(attr->value); + } + } + qxtLog->debug()<< "[sysinfo] Mainboard Serial: " + out; + return out; + } + qxtLog->debug()<< "[sysinfo] Mainboard Serial: attrlist is null! return: mainboard_serial_error"; + sysfs_close_class_device(class_device); + return "mainboard_serial_error"; +} + + +// ------------------------------------------------------------------------------------------------ QString SysInfo::getScriptOutput(QString cmd) { QProcess *process = new QProcess(); - qDebug()<<"try to open: "<<cmd; + qxtLog->debug()<<"[sysinfo] Script Output: try to open: "<<cmd; process->start(cmd, QIODevice::ReadOnly); if (!process->waitForStarted() ) - qDebug()<<"process couldn't get opened"; + qxtLog->debug()<<"[sysinfo] Script Output: process couldn't get opened"; QString output; process->waitForFinished(); @@ -98,12 +125,12 @@ QString SysInfo::getScriptOutput(QString cmd) while(!txt_stream->atEnd() ) { - qDebug()<<"read output: "; + qxtLog->debug()<<"[sysinfo] Script Output: read output: "; QString tmp_str = txt_stream->readLine(); output += tmp_str; - qDebug()<<tmp_str; + qxtLog->debug()<< "[sysinfo] Script Output: " <<tmp_str; } - qDebug()<<"process finished: "; + qxtLog->debug()<<"[sysinfo] Script Output: process finished: "; return output; } diff --git a/src/sysinfo.h b/src/sysinfo.h index cbb002e..d32d0f8 100644 --- a/src/sysinfo.h +++ b/src/sysinfo.h @@ -18,6 +18,15 @@ #ifndef SYSINFO_H #define SYSINFO_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "libsysfs.h" +#ifdef __cplusplus +} +#endif + #include "fbgui.h" #include <qjson/serializer.h> @@ -32,9 +41,11 @@ private: // private system information readers const QString getMACAddress(); const QString getIPAddress(); + const QString getMainboardSerial(); QString getAllInfos(); QString getScriptOutput(QString cmd); + // JSon testing QJson::Serializer serializer; const QByteArray getNames(); diff --git a/src/sysinfolibsysfs.cpp b/src/sysinfolibsysfs.cpp index d9bbac8..2c9aafc 100644 --- a/src/sysinfolibsysfs.cpp +++ b/src/sysinfolibsysfs.cpp @@ -91,7 +91,7 @@ QString SysInfoLibsysfs::getInfoMainboardSerial(){ } qDebug() << "attrlist is null!"; sysfs_close_class_device(class_device); - return null; + return NULL; } void SysInfoLibsysfs::getInfoAboutClassNet() |
