working identity

This commit is contained in:
Cameron Gutman
2018-04-28 23:29:45 -07:00
parent a5d50cd4f0
commit 0249ce7043
2 changed files with 48 additions and 9 deletions

View File

@@ -5,6 +5,7 @@
#include <QEventLoop>
#include <QTimer>
#include <QXmlStreamReader>
#include <QSslKey>
#define REQUEST_TIMEOUT_MS 5000
@@ -112,7 +113,7 @@ NvHTTP::getServerInfo()
if (e.getStatusCode() == 401)
{
// Certificate validation error, fallback to HTTP
serverInfo = openConnectionToString(m_BaseUrlHttps,
serverInfo = openConnectionToString(m_BaseUrlHttp,
"serverinfo",
nullptr,
true);
@@ -198,10 +199,18 @@ NvHTTP::openConnection(QUrl baseUrl,
"&uuid=" + QUuid::createUuid().toRfc4122().toHex() +
((arguments != nullptr) ? ("&" + arguments) : ""));
QNetworkReply* reply = m_Nam.get(QNetworkRequest(url));
QNetworkRequest request = QNetworkRequest(url);
// Add our client certificate
QSslConfiguration sslConfig(QSslConfiguration::defaultConfiguration());
sslConfig.setLocalCertificate(QSslCertificate(m_Im.getCertificate()));
sslConfig.setPrivateKey(QSslKey(m_Im.getPrivateKey(), QSsl::Rsa));
request.setSslConfiguration(sslConfig);
QNetworkReply* reply = m_Nam.get(request);
// Ignore self-signed certificate errors (since GFE uses them)
reply->ignoreSslErrors(QList<QSslError>{ QSslError::SelfSignedCertificate });
reply->ignoreSslErrors();
// Run the request with a timeout if requested
QEventLoop loop;