18class NetworkAccessManager :
public QNetworkAccessManager {
20 NetworkAccessManager(QWidget *parent) : QNetworkAccessManager(parent) {
25 this, &QNetworkAccessManager::sslErrors,
26 [
this, &parent](QNetworkReply *reply,
30 for (
auto const &error : errors) {
31 if (!allowed_ssl_errors_.contains(error)) {
34 reply->request().url().toDisplayString() +
35 ": " + error.errorString();
38 if (new_errors.size()) {
40 for (
auto const &cert :
41 reply->sslConfiguration().peerCertificateChain()) {
42 certs += cert.toText() +
'\n';
44 if (JS8MessageBox::Ignore ==
45 JS8MessageBox::query_message(
46 parent, tr(
"Network SSL Errors"), message, certs,
47 JS8MessageBox::Abort | JS8MessageBox::Ignore)) {
50 allowed_ssl_errors_.append(new_errors);
51 reply->ignoreSslErrors(allowed_ssl_errors_);
56 reply->ignoreSslErrors(allowed_ssl_errors_);
62 QNetworkReply *createRequest(Operation operation,
63 QNetworkRequest
const &request,
64 QIODevice *outgoing_data =
nullptr)
override {
65 auto reply = QNetworkAccessManager::createRequest(operation, request,
69 reply->ignoreSslErrors(allowed_ssl_errors_);