summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcin Zdunek <marcin.zdunek@siili.com>2024-01-09 12:41:31 +0100
committerMarcin Zdunek <marcin.zdunek@siili.com>2024-01-16 11:21:55 +0100
commit5346404da64ac87d161f510d9fee71899d7c70ba (patch)
treebc45d1749930e03511424183254ad496ee695c5a
parentd0d5794a3decca8501d26387bc8281c61f0bd4ba (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.cpp15
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;
}
/*!