From 5346404da64ac87d161f510d9fee71899d7c70ba Mon Sep 17 00:00:00 2001 From: Marcin Zdunek Date: Tue, 9 Jan 2024 12:41:31 +0100 Subject: [PATCH] Fix missing certs directory in VxWorks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/network/ssl/qsslsocket.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 QSslSocketPrivate::unixRootCertDirectories() ba("/opt/openssl/certs/"), // HP-UX ba("/etc/ssl/"), // OpenBSD }; - return QList::fromReadOnlyData(dirs); + QList result = QList::fromReadOnlyData(dirs); + if constexpr (isVxworks) { + static QString vxworksCertsDir = qgetenv("VXWORKS_CERTS_DIR"); + if (!vxworksCertsDir.isEmpty()) { + result.push_back(vxworksCertsDir.toLatin1()); + } + } + return result; } /*!