summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Neves2012-01-31 15:01:50 +0100
committerMichael Neves2012-01-31 15:01:50 +0100
commitbaaafd8c9a2f357fbf1a696b937ccd7d0c8b93ed (patch)
treee03a90abcf561f476257b4260113bc04961704df
parentAdded HTTP Error Handling (diff)
downloadfbgui-baaafd8c9a2f357fbf1a696b937ccd7d0c8b93ed.tar.gz
fbgui-baaafd8c9a2f357fbf1a696b937ccd7d0c8b93ed.tar.xz
fbgui-baaafd8c9a2f357fbf1a696b937ccd7d0c8b93ed.zip
registerCACertificates function
-rw-r--r--src/fbgui/fbgui.cpp25
-rw-r--r--src/fbgui/fbgui.h7
2 files changed, 21 insertions, 11 deletions
diff --git a/src/fbgui/fbgui.cpp b/src/fbgui/fbgui.cpp
index fcc652c..9c9efcd 100644
--- a/src/fbgui/fbgui.cpp
+++ b/src/fbgui/fbgui.cpp
@@ -243,7 +243,7 @@ void fbgui::loadURL() {
// Generate POST identification data needed by PBS.
QByteArray postData = generatePOSTData();
- QNetworkRequest req(baseURL);
+ _qnr = new QNetworkRequest(baseURL);
//Connect webViews NetworkAccessManager to SSLErrorHandler SLOT
QObject::connect(_webView->page()->networkAccessManager(),
@@ -259,9 +259,9 @@ void fbgui::loadURL() {
// show cursor again since user is about to interact.
//QWSServer::instance()->setCursorVisible(true); //TODO: ?enabled in original
- req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
+ _qnr->setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QObject::connect(_webView, SIGNAL(loadFinished(bool)), this, SLOT(loadURLDone(bool)));
- _webView->load(req, QNetworkAccessManager::PostOperation, postData);
+ _webView->load(*_qnr, QNetworkAccessManager::PostOperation, postData);
}
// TODO: error page if no host.
}
@@ -279,8 +279,7 @@ void fbgui::loadURLDone(bool success) {
//Handles QNetworkReply SSL Errors
-void fbgui::sslErrorHandler(QNetworkReply* reply, const QList<QSslError> & errlist)
-{
+void fbgui::sslErrorHandler(QNetworkReply* reply, const QList<QSslError> & errlist) {
foreach (QSslError err, errlist)
LOG4CXX_DEBUG(coreLogger, "SSL Error: " << err.errorString());
@@ -289,15 +288,21 @@ void fbgui::sslErrorHandler(QNetworkReply* reply, const QList<QSslError> & errli
}
//Handles QNetworkReply Errors
-void fbgui::errorHandler(QNetworkReply* reply)
-{
-
+void fbgui::httpErrorHandler(QNetworkReply* reply) {
LOG4CXX_DEBUG(coreLogger, "HTTP Error: " << reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString());
-
-
}
+//Saves Certificates to SslConfiguration
+void fbgui::registerCACertificate(QSslCertificate& cert){
+ LOG4CXX_DEBUG(coreLogger,"Is cert valid: " << cert.isValid());
+ LOG4CXX_DEBUG(coreLogger,"Cert info: " << cert.issuerInfo(QSslCertificate::Organization));
+ QSslConfiguration sslConfig = _qnr->sslConfiguration();
+ QList<QSslCertificate> caCerts = sslConfig.caCertificates();
+ caCerts.append(cert);
+ sslConfig.setCaCertificates(caCerts);
+ _qnr->setSslConfiguration(sslConfig);
+}
//-------------------------------------------------------------------------------------------
/**
* This method generates the POST data body.
diff --git a/src/fbgui/fbgui.h b/src/fbgui/fbgui.h
index 04aa38b..57f4a34 100644
--- a/src/fbgui/fbgui.h
+++ b/src/fbgui/fbgui.h
@@ -88,6 +88,8 @@ private:
//----------------------------------
// QWebView for displaying internet content
QWebView* _webView;
+ // QNetworkRequest for the Network Request
+ QNetworkRequest* _qnr;
// QSplitter to split the main window in two resizable frames.
QSplitter* _splitter;
// QTextEdit implementing a minimalistic debug console.
@@ -120,7 +122,10 @@ private slots:
void sslErrorHandler(QNetworkReply* reply, const QList<QSslError> & errlist);
//Error Handler for http Requests
- void errorHandler(QNetworkReply* reply);
+ void httpErrorHandler(QNetworkReply* reply);
+
+ //Sets CaCertificate in QSslConfiguration
+ void registerCACertificate(QSslCertificate& cert);
// shut off the system
void performShutDown();