diff options
-rw-r--r-- | src/fbgui.cpp | 61 | ||||
-rw-r--r-- | src/fbgui.h | 1 |
2 files changed, 37 insertions, 25 deletions
diff --git a/src/fbgui.cpp b/src/fbgui.cpp index 66e5670..fe7d4e2 100644 --- a/src/fbgui.cpp +++ b/src/fbgui.cpp @@ -135,10 +135,36 @@ void fbgui::checkForTrigger(const QString& dirname) } //------------------------------------------------------------------------------------------- void fbgui::loadURL(){ - // TODO actual data... - // PBS POST data tests - QNetworkRequest req(baseURL); - QByteArray postData("mac=d8:d3:85:80:81:8b&hardwarehash=12341234123412341234123412341234&bootisoID=1&serial="); + // load if host is valid + if (checkHost()){ + qxtLog->debug() << "Loading URL..."; + QByteArray postData = generatePOSTData(); + qxtLog->debug() << "POST data: " << postData; + QNetworkRequest req(baseURL); + _webView->load(req, QNetworkAccessManager::PostOperation, postData); + } +} +//------------------------------------------------------------------------------------------- +bool fbgui::checkHost() const +{ + QHostInfo hostInfo = QHostInfo::fromName(baseURL.host()); + if (hostInfo.error() != QHostInfo::NoError){ + qxtLog->debug() << "Lookup of " << baseURL.host() << "failed. Exiting..."; + return false; + } + else{ + qxtLog->debug() << "Lookup of " << baseURL.host() << " succeeded."; + return true; + } +} +//------------------------------------------------------------------------------------------- +QByteArray fbgui::generatePOSTData(){ + // hash testing + SysInfo si; + QByteArray data(si.getInfo("mac").toUtf8() + "|" + si.getInfo("ip").toUtf8()); + qxtLog->debug() << "Hashing: " << data; + QByteArray hash = QCryptographicHash::hash(data, QCryptographicHash::Md5); + qxtLog->debug() << "MD5 Hash: " << hash.toHex(); // fetch serial number from usb rootfs QByteArray serial; @@ -161,27 +187,12 @@ void fbgui::loadURL(){ serial.chop(1); qxtLog->debug() << "Serial number is: " << serial; - postData.append(serial); - - // load if host is valid - if (checkHost()){ - qxtLog->debug() << "Loading URL..."; - qxtLog->debug() << "POST data: " << postData; - _webView->load(req, QNetworkAccessManager::PostOperation, postData); - } -} -//------------------------------------------------------------------------------------------- -bool fbgui::checkHost() const -{ - QHostInfo hostInfo = QHostInfo::fromName(baseURL.host()); - if (hostInfo.error() != QHostInfo::NoError){ - qxtLog->debug() << "Lookup of " << baseURL.host() << "failed. Exiting..."; - return false; - } - else{ - qxtLog->debug() << "Lookup of " << baseURL.host() << " succeeded."; - return true; - } + // construct final byte array + QByteArray postData("bootisoID=1"); + postData.append("&mac=" + si.getInfo("mac")); + postData.append("&hardwarehash=" + hash.toHex()); + postData.append("&serial=" + serial); + return postData; } //------------------------------------------------------------------------------------------- void fbgui::setupDebugSplit() diff --git a/src/fbgui.h b/src/fbgui.h index 6350ee2..f710fb6 100644 --- a/src/fbgui.h +++ b/src/fbgui.h @@ -59,6 +59,7 @@ private: void watchForTrigger(); bool checkHost() const; void loadURL(); + QByteArray generatePOSTData(); // widgets constituing the gui QWebView* _webView; |