diff options
author | Simon Rettberg | 2017-03-06 11:27:47 +0100 |
---|---|---|
committer | Simon Rettberg | 2017-03-06 11:27:47 +0100 |
commit | b596a6f0719ab67fa69b95523bbd513963f57e27 (patch) | |
tree | addfd9949d666899c238b4ab64a5c373a57bbb11 /src/server/net/discoverylistener.cpp | |
parent | [client] Periodically bring vnc and lock window to top (diff) | |
download | pvs2-b596a6f0719ab67fa69b95523bbd513963f57e27.tar.gz pvs2-b596a6f0719ab67fa69b95523bbd513963f57e27.tar.xz pvs2-b596a6f0719ab67fa69b95523bbd513963f57e27.zip |
[server] Bail out if certificates cannot be created
Diffstat (limited to 'src/server/net/discoverylistener.cpp')
-rw-r--r-- | src/server/net/discoverylistener.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp index e37c81e..95ad5e4 100644 --- a/src/server/net/discoverylistener.cpp +++ b/src/server/net/discoverylistener.cpp @@ -121,6 +121,7 @@ void DiscoveryListener::timerEvent(QTimerEvent* /* event */ ) */ void DiscoveryListener::onReadyRead() { + static int certFails = 0; char data[UDPBUFSIZ]; QHostAddress addr; quint16 port; @@ -161,7 +162,12 @@ void DiscoveryListener::onReadyRead() QByteArray myiplist(Network::interfaceAddressesToString().toUtf8()); QSslKey key; QSslCertificate cert; - CertManager::getPrivateKeyAndCert("manager", key, cert); + if (!CertManager::getPrivateKeyAndCert("manager", key, cert)) { + if (++certFails > 5) { + CertManager::fatal(); + } + continue; + } QByteArray certhash(cert.digest(QCryptographicHash::Sha1)); // Reply to client _packet.reset(); |