aboutsummaryrefslogtreecommitdiff
path: root/src/webclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webclient.cpp')
-rw-r--r--src/webclient.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/webclient.cpp b/src/webclient.cpp
index b5d4d9d..b50d508 100644
--- a/src/webclient.cpp
+++ b/src/webclient.cpp
@@ -41,6 +41,11 @@ bool WebClient::startRequest(const QUrl &url, RequestOptions options)
else
ssl_config.setCaCertificates(QList<QSslCertificate> { });
+ if(this->current_identity.isValid()) {
+ ssl_config.setLocalCertificate(this->current_identity.certificate);
+ ssl_config.setPrivateKey(this->current_identity.private_key);
+ }
+
// request.setMaximumRedirectsAllowed(5);
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, false);
request.setSslConfiguration(ssl_config);
@@ -73,6 +78,17 @@ bool WebClient::cancelRequest()
return true;
}
+bool WebClient::enableClientCertificate(const CryptoIdentity &ident)
+{
+ current_identity = ident;
+ return true;
+}
+
+void WebClient::disableClientCertificate()
+{
+ current_identity = CryptoIdentity();
+}
+
void WebClient::on_data()
{
this->body.append(this->current_reply->readAll());
@@ -112,6 +128,7 @@ void WebClient::on_finished()
}
qDebug() << "web network error" << reply->errorString();
+ qDebug() << this->body;
emit this->networkError(error, reply->errorString());
}
else