From c09c20914fb3f6fb622bf3c5a3e01ddd331013f3 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 10 Oct 2016 20:30:33 +0200 Subject: [server] When creating certificate, create directory tree first --- src/server/net/certmanager.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/server/net/certmanager.cpp') 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); -- cgit v1.2.3-55-g7522