summaryrefslogtreecommitdiffstats
path: root/src/sysinfo.cpp
diff options
context:
space:
mode:
authorNiklas Goby2011-11-23 11:56:19 +0100
committerNiklas Goby2011-11-23 11:56:19 +0100
commitc0b6b199a9878bc1e95907200501211c09c1e66c (patch)
tree0079c34c6536e5f1d0414aebde1793db60a78f35 /src/sysinfo.cpp
parentdeleted the NetworkDiscovery and UnixDomainSocketServer folder (diff)
downloadfbgui-c0b6b199a9878bc1e95907200501211c09c1e66c.tar.gz
fbgui-c0b6b199a9878bc1e95907200501211c09c1e66c.tar.xz
fbgui-c0b6b199a9878bc1e95907200501211c09c1e66c.zip
created modules
Diffstat (limited to 'src/sysinfo.cpp')
-rw-r--r--src/sysinfo.cpp180
1 files changed, 0 insertions, 180 deletions
diff --git a/src/sysinfo.cpp b/src/sysinfo.cpp
deleted file mode 100644
index 7d6ac92..0000000
--- a/src/sysinfo.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "sysinfo.h"
-
-// ------------------------------------------------------------------------------------------------
-/**
- * A empty constructor.
- */
-SysInfo::SysInfo() {
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * A empty destructor.
- */
-SysInfo::~SysInfo() {
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * This method returns system informations.
- *
- * This method returns system informations according to the parameter.
- * This method can be called from the JavascriptInterface class with the
- * method JavascriptInterface::getSysInfo(const QString& info).
- *
- * @param infoName
- * Is of type QString. Defines which method will be called. Possible values are:
- * - mbserial
- * - usb
- *
- * @return QString
- * the output of the called method or "info_error" if an error occurred
- * (e. g. invalid parameter).
- *
- * @see JavascriptInterface::getSysInfo(const QString& info)
- */
-const QString SysInfo::getInfo(const QString& infoName) {
- qxtLog->debug() << "[sysinfo] requested " << infoName;
- if (infoName == QString("mbserial"))
- return getMainboardSerial();
- else if (infoName == QString("usb"))
- return getUsbVendorIdProductIdSerialNumber();
- /* unknown code */
- qxtLog->debug() << "[sysinfo] unknown requested";
- return "info_error";
-}
-// -----------------------------------------------------------------------------------------------
-// Mainboard / USB Infos using libsysfs
-// -----------------------------------------------------------------------------------------------
-/**
- * This method returns the Mainboard Serial Number.
- *
- * This method returns the Mainboard Serial Number. The mainboard serial
- * number 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 "mbserial"
- *
- * @return QString
- * the mainboard serial or "mainboard_serial_error" if an error occurred.
- *
- * @see fbgui::generatePOSTData()
- * @see SysInfo::getInfo(const QString& infoName)
- */
-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";
-}
-// ------------------------------------------------------------------------------------------------
-/**
- * This method returns inforamtions about connected usb devices.
- *
- * This method returns the inforamtions about connected usb devices
- * as a json formated string.
- * Those informations are:
- * - the vendor
- * - the vendorID
- * - the product
- * - the productID
- * - the manufacturer
- * - the serial number
- * To call this method use the SysInfo::getInfo(const QString& infoName)
- * method with the parameter "usb"
- *
- * @return QString
- * all above described informations as a json formated string or "error"
- * if an error occurred.
- *
- * @see SysInfo::getInfo(const QString& infoName)
- */
-const QString SysInfo::getUsbVendorIdProductIdSerialNumber() {
-
- QString tag = "[sysinfo] Usb Serial:";
- QString out = "";
- QVariantList list;
-
- libusb_device **devs;
- libusb_context *ctx = NULL; //a libusb session
- ssize_t cnt; //holding number of devices in list
- int r = 1;
- r = libusb_init(&ctx);
- if (r < 0) {
- qxtLog->debug() << tag + "failed to initialise libusb";
- return "error";
- }
- cnt = libusb_get_device_list(ctx, &devs); //get the list of devices
- if (cnt < 0) {
- qxtLog->debug() << tag + "Get Device Error"; //there was an error
- }
- qxtLog->debug() << tag + cnt + " Devices in list."; //print total number of usb devices
- ssize_t i; //for iterating through the list#
- for (i = 0; i < cnt; i++) {
- //printdev(devs[i]); //print specs of this device
- QVariantMap infos;
- libusb_device *dev = devs[i];
- libusb_device_descriptor desc;
- int re = libusb_get_device_descriptor(dev, &desc);
- if (re < 0) {
- qxtLog->debug() << tag + "failed to get device descriptor";
- return "error";
- }
- infos.insert("vendorId", desc.idVendor);
- infos.insert("productId", desc.idProduct);
- unsigned char string[256];
- libusb_device_handle *handle;
- re = libusb_open(dev, &handle);
- if (re != 0) {
- qxtLog->debug() << tag + "failed to get handler / fail to open device";
- return "error";
- }
- re = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber,
- string, sizeof(string));
- if (re < 0) {
- qxtLog->debug() << tag + "failed to get SerialNumber";
- return "error";
- }
- infos.insert("serialnumber", QString((const char *) string));
- re = libusb_get_string_descriptor_ascii(handle, desc.iProduct, string,
- sizeof(string));
- if (re < 0) {
- qxtLog->debug() << tag + "failed to get Product";
- return "error";
- }
- infos.insert("product", QString((const char *) string));
- re = libusb_get_string_descriptor_ascii(handle, desc.iManufacturer,
- string, sizeof(string));
- if (re < 0) {
- qxtLog->debug() << tag + "failed to get Product";
- return "error";
- }
- infos.insert("manuacturer", QString((const char *) string));
-
- list << infos;
- libusb_close(handle);
- }
- 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);
- qxtLog->debug() << tag + "json object: " + json;
- return json;
- */
-}