diff options
-rw-r--r-- | src/murmur/Cert.cpp | 2 | ||||
-rw-r--r-- | src/murmur/Server.cpp | 2 | ||||
-rw-r--r-- | src/murmur/Server.h | 11 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/murmur/Cert.cpp b/src/murmur/Cert.cpp index 004c11744..1be63a934 100644 --- a/src/murmur/Cert.cpp +++ b/src/murmur/Cert.cpp @@ -115,7 +115,7 @@ void Server::initializeCert() { ql.removeAt(i); } } - qlCA = ql; + qlIntermediates = ql; } #if defined(USE_QSSLDIFFIEHELLMANPARAMETERS) diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp index 27f90705c..4178dfab6 100644 --- a/src/murmur/Server.cpp +++ b/src/murmur/Server.cpp @@ -1198,7 +1198,7 @@ void Server::newClient() { sock->setPrivateKey(qskKey); sock->setLocalCertificate(qscCert); sock->addCaCertificate(qscCert); - sock->addCaCertificates(qlCA); + sock->addCaCertificates(qlIntermediates); #if defined(USE_QSSLDIFFIEHELLMANPARAMETERS) QSslConfiguration cfg = sock->sslConfiguration(); diff --git a/src/murmur/Server.h b/src/murmur/Server.h index 0d4d9ef73..f3d51c522 100644 --- a/src/murmur/Server.h +++ b/src/murmur/Server.h @@ -131,9 +131,18 @@ class Server : public QThread { QVariant qvSuggestPositional; QVariant qvSuggestPushToTalk; - QList<QSslCertificate> qlCA; QSslCertificate qscCert; QSslKey qskKey; + + /// qlIntermediates contains the certificates + /// from this virtual server's certificate PEM + // bundle that do not match the virtual server's + // private key. + /// + /// Simply put: it contains any certificates + /// that aren't the main certificate, or "leaf" + /// certificate. + QList<QSslCertificate> qlIntermediates; #if defined(USE_QSSLDIFFIEHELLMANPARAMETERS) QSslDiffieHellmanParameters qsdhpDHParams; #endif |