summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2016-10-10 20:30:33 +0200
committerSimon Rettberg2016-10-10 20:30:33 +0200
commitc09c20914fb3f6fb622bf3c5a3e01ddd331013f3 (patch)
tree996b325088feb315c86a2dfea376d8b3810a3b20
parent[client] Skip rooms with no mgrIP when selecting "myRooms" (diff)
downloadpvs2-c09c20914fb3f6fb622bf3c5a3e01ddd331013f3.tar.gz
pvs2-c09c20914fb3f6fb622bf3c5a3e01ddd331013f3.tar.xz
pvs2-c09c20914fb3f6fb622bf3c5a3e01ddd331013f3.zip
[server] When creating certificate, create directory tree first
-rw-r--r--src/server/net/certmanager.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/net/certmanager.cpp b/src/server/net/certmanager.cpp
index 933bbbc..0121538 100644
--- a/src/server/net/certmanager.cpp
+++ b/src/server/net/certmanager.cpp
@@ -40,16 +40,22 @@ bool getPrivateKeyAndCert(const QString &name, QSslKey &key, QSslCertificate &ce
cert = _certs[name];
return true;
}
- QString certFile = QDir::homePath().append("/").append(CERTSTORAGE).append(name);
+ QString certDir = QDir::homePath().append("/").append(CERTSTORAGE);
+ if (!QDir::root().mkpath(certDir)) {
+ certDir = QString("/tmp/") + qrand() + "-" + qrand() + "/";
+ QDir::root().mkpath(certDir);
+ }
+ QString certFile = certDir.append(name);
QString keyFile = certFile;
keyFile.append(".rsa");
certFile.append(".crt");
//
if (!loadFiles(keyFile, certFile, key, cert)) {
generateFiles(keyFile, certFile);
- if (!loadFiles(keyFile, certFile, key, cert))
- qDebug() << "error while creating cert and key files\n";
- return false;
+ if (!loadFiles(keyFile, certFile, key, cert)) {
+ qDebug() << "error while creating cert and key files";
+ return false;
+ }
}
_certs.insert(name, cert);
_keys.insert(name, key);