diff options
author | Simon Rettberg | 2016-10-10 20:30:33 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-10-10 20:30:33 +0200 |
commit | c09c20914fb3f6fb622bf3c5a3e01ddd331013f3 (patch) | |
tree | 996b325088feb315c86a2dfea376d8b3810a3b20 | |
parent | [client] Skip rooms with no mgrIP when selecting "myRooms" (diff) | |
download | pvs2-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.cpp | 14 |
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); |