diff options
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(); |