summaryrefslogtreecommitdiffstats
path: root/src/server/net/discoverylistener.cpp
diff options
context:
space:
mode:
authorSimon Rettberg2017-03-06 11:27:47 +0100
committerSimon Rettberg2017-03-06 11:27:47 +0100
commitb596a6f0719ab67fa69b95523bbd513963f57e27 (patch)
treeaddfd9949d666899c238b4ab64a5c373a57bbb11 /src/server/net/discoverylistener.cpp
parent[client] Periodically bring vnc and lock window to top (diff)
downloadpvs2-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.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();