/* * Copyright (c) 2010,2011 - RZ Uni Freiburg * Copyright (c) 2010,2011 - OpenSLX Project * * This program/file is free software distributed under the GPL version 2. * See http://openslx.org/COPYING * * If you have any feedback please consult http://openslx.org/feedback and * send your feedback to feedback@openslx.org * * General information about OpenSLX can be found under http://openslx.org * * * Main class of the fbgui: * - Manages display of components and their communications * */ #ifndef FBGUI_H #define FBGUI_H #include #include #include #include "agui.h" // Internal default settings #define DEFAULT_URL "http://www.google.com" #define DEFAULT_DOWNLOAD_DIR "/tmp/fbgui" #define DEFAULT_CONFIG_PATH "/etc/fbgui.conf" #define DEFAULT_LOG_FILE_PATH "/tmp/fbgui.log" #define DEFAULT_UPDATE_INTERVAL 1; #define DEFAULT_QRC_HTML_DIR ":/html" #define DEFAULT_FILE_TRIGGER "/tmp/fbgui/trigger" #define DEFAULT_SSL_SUPPORT false; // Global settings variables extern QString logFilePath; extern QString ipConfigFilePath; extern QThread dmThread; extern QString serialLocation; extern QString fileToTriggerURL; extern QString sessionID; extern QString binPath; extern QString downloadPath; extern QUrl baseURL; extern int debugMode; extern int updateInterval; extern QString interfaceName; extern bool sslSupport; class fbgui : public agui { Q_OBJECT public: fbgui(); ~fbgui(); public slots: void init(); private: bool checkHost() const; void loadURL(); //Dump all Certificates in SSLConfiguration void dumpSSLConfiguration(); QByteArray generatePOSTData(); // QNetworkRequest for the Network Request QNetworkRequest* _qnr; // List for expected SSL Errors, like selfsigned certificate error QList _expectedSslErrors; private slots: void loadURLDone(bool success); //SSL Error Handler for SSL Requests void sslErrorHandler(QNetworkReply*, const QList &); //Error Handler for http Requests void httpErrorHandler(QNetworkReply*); //Sets CaCertificates in QSslConfiguration void setCACertificates(const QList & ); //Sets LocalCertificate in QSslConfiguration void setLocalCertificate(const QSslCertificate & ); //Sets PrivateKey in QSslConfiguration void setPrivateKey(const QSslKey &); void loadSystem(); // prepares kexec by loading downloaded initramfs, kernel into kexec void prepareKexec(); // executes: kexec -e void runKexec(); }; #endif // FBGUI_H