summaryrefslogtreecommitdiffstats
path: root/src/server/net/discoverylistener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/net/discoverylistener.cpp')
-rw-r--r--src/server/net/discoverylistener.cpp8
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();