summaryrefslogtreecommitdiffstats
path: root/src/sysinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sysinfo.cpp')
-rw-r--r--src/sysinfo.cpp152
1 files changed, 4 insertions, 148 deletions
diff --git a/src/sysinfo.cpp b/src/sysinfo.cpp
index 4797a86..c9bb0e8 100644
--- a/src/sysinfo.cpp
+++ b/src/sysinfo.cpp
@@ -22,8 +22,6 @@ SysInfo::~SysInfo() {
*
* @param infoName
* Is of type QString. Defines which method will be called. Possible values are:
- * - mac
- * - ip
* - mbserial
* - usb
*
@@ -35,121 +33,17 @@ SysInfo::~SysInfo() {
*/
const QString SysInfo::getInfo(const QString& 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"))
+ if (infoName == QString("mbserial"))
return getMainboardSerial();
else if (infoName == QString("usb"))
return getUsbVendorIdProductIdSerialNumber();
- else if (infoName == QString("json"))
- return getNames();
/* unknown code */
qxtLog->debug() << "[sysinfo] unknown requested";
return "info_error";
}
-// ------------------------------------------------------------------------------------------------
-/**
- * This method returns the clients MAC-Address.
- *
- * This method returns the clients MAC-Address of the "eth0" interface.
- * The MAC-Address is used as part of the data to compute the
- * hardwarehash of the client machine. To call this method use the
- * SysInfo::getInfo(const QString& infoName) method with
- * the parameter "mac"
- *
- * @return QString
- * the MAC-Address or "no_eth0" if an error occurred.
- *
- * @see fbgui::generatePOSTData()
- * @see SysInfo::getInfo(const QString& infoName)
- */
-const QString SysInfo::getMACAddress() {
- // Returns MAC address of eth0 for now
- QNetworkInterface qni = QNetworkInterface::interfaceFromName(QString("eth0"));
- if (!qni.isValid()) {
- qxtLog->debug() << "[sysinfo] MAC Address: No interface matching \"eth0\" found.";
- return "no_eth0";
- }
- //eth0_index = qni.index();
- return qni.hardwareAddress();
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * This method returns the clients IP-Address.
- *
- * This method returns the clients IP-Address of the "eth0" interface.
- * To call this method use the
- * SysInfo::getInfo(const QString& infoName) method with
- * the parameter "ip"
- *
- * @return QString
- * the IP-Address or "ip_error" if an error occurred.
- *
- * @see SysInfo::getInfo(const QString& infoName)
- */
-const QString SysInfo::getIPAddress() {
- // Again for eth0 only at the moment.
- // TODO: this doesn't quite work yet...
- QNetworkInterface qni = QNetworkInterface::interfaceFromName(QString("eth0"));
- QList<QHostAddress> addrlist = qni.allAddresses();
- // This is does not return the right IP atm...
- foreach(QHostAddress addr, addrlist)
- {
- if (addr.protocol() == QAbstractSocket::IPv4Protocol && addr != QHostAddress::LocalHost) {
- return addr.toString();
- }
- }
- // still here?
- qxtLog->debug() << "[sysinfo] IP Address: ip_error";
- return "ip_error";
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * just a test method for json.
- */
-const QByteArray SysInfo::getNames() {
-
- QVariantMap foo;
- foo.insert("name", "foo");
- foo.insert("type", 123);
-
- QVariantMap fooo;
- fooo.insert("name", "boo");
- fooo.insert("type", 321);
-
- QVariantList jsonV;
- jsonV << foo << fooo;
-
- QJson::Serializer serializer;
- QByteArray json = serializer.serialize(jsonV);
-
- qxtLog->debug() << json;
- return json;
-
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * just a test method for json.
- */
-QString SysInfo::getAllInfos() {
- QVariantMap infos;
- infos.insert("mac", getMACAddress());
- infos.insert("ip", getIPAddress());
- infos.insert("whoami", getScriptOutput("whoami"));
- //infos.insert("pwd", getScriptOutput("pwd"));
-
- //QJson::Serializer serializer;
- QByteArray json = serializer.serialize(infos);
-
- qxtLog->debug() << json;
- return json;
-}
-// ------------------------------------------------------------------------------------------------
-
+// -----------------------------------------------------------------------------------------------
+// Mainboard / USB Infos using libsysfs
+// -----------------------------------------------------------------------------------------------
/**
* This method returns the Mainboard Serial Number.
*
@@ -277,41 +171,3 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() {
qxtLog->debug() << tag + "json object: " + json;
return json;
}
-
-// ------------------------------------------------------------------------------------------------
-/**
- * This method returns the output of the provided script.
- *
- * This method returns the output of the provided script.
- * Script could be any command.
- * This method is not used so far.
- *
- * @param cmd
- * Is of type QString. The command which will be executed
- *
- * @return QString
- * output of the script.
- */
-QString SysInfo::getScriptOutput(QString cmd) {
- QProcess *process = new QProcess();
- qxtLog->debug() << "[sysinfo] Script Output: try to open: " << cmd;
- process->start(cmd, QIODevice::ReadOnly);
-
- if (!process->waitForStarted())
- qxtLog->debug() << "[sysinfo] Script Output: process couldn't get opened";
-
- QString output;
- process->waitForFinished();
-
- QTextStream *txt_stream = new QTextStream(process);
-
- while (!txt_stream->atEnd()) {
- qxtLog->debug() << "[sysinfo] Script Output: read output: ";
- QString tmp_str = txt_stream->readLine();
- output += tmp_str;
- qxtLog->debug() << "[sysinfo] Script Output: " << tmp_str;
- }
- qxtLog->debug() << "[sysinfo] Script Output: process finished: ";
- return output;
-}
-