diff options
author | Marcin Zdunek <marcin.zdunek@siili.com> | 2024-01-09 12:41:31 +0100 |
---|---|---|
committer | Marcin Zdunek <marcin.zdunek@siili.com> | 2024-01-16 11:21:55 +0100 |
commit | 5346404da64ac87d161f510d9fee71899d7c70ba (patch) | |
tree | bc45d1749930e03511424183254ad496ee695c5a | |
parent | d0d5794a3decca8501d26387bc8281c61f0bd4ba (diff) |
Fix missing certs directory in VxWorks
tst_qsslsocket checks for system CA certificates, which VxWorks doesn't have out of the box, which causes a lot of testcases to fail.
As VxWorks doesn't provide default directory structure, directory with ssl certs is provided by setting a variable.
Task-number: QTBUG-115777
Change-Id: I5c93933ee5fbcafd6ffd76b574d8793fe75dbdbc
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
-rw-r--r-- | src/network/ssl/qsslsocket.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 1fe33440b1..a763721828 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -364,6 +364,12 @@ QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; +#ifdef Q_OS_VXWORKS +constexpr auto isVxworks = true; +#else +constexpr auto isVxworks = false; +#endif + class QSslSocketGlobalData { public: @@ -2959,7 +2965,14 @@ QList<QByteArray> QSslSocketPrivate::unixRootCertDirectories() ba("/opt/openssl/certs/"), // HP-UX ba("/etc/ssl/"), // OpenBSD }; - return QList<QByteArray>::fromReadOnlyData(dirs); + QList<QByteArray> result = QList<QByteArray>::fromReadOnlyData(dirs); + if constexpr (isVxworks) { + static QString vxworksCertsDir = qgetenv("VXWORKS_CERTS_DIR"); + if (!vxworksCertsDir.isEmpty()) { + result.push_back(vxworksCertsDir.toLatin1()); + } + } + return result; } /*! |