summaryrefslogtreecommitdiffstats
path: root/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2024-06-12 13:55:56 +0300
committerAhmad Samir <a.samirh78@gmail.com>2024-07-25 16:26:29 +0300
commitd2afcff46d86c69c3e8eeebb98172e63f701648f (patch)
tree22108059940f53b525fa6691d4a7736a55626d97 /src/plugins/tls/openssl/qtlsbackend_openssl.cpp
parentbcdf67888feb6e224a4010cbb433e0247937b586 (diff)
QTlsBackendOpenSSL: optimize QDirListing iteration
Looking for certificates, the name filters are {*.pem,*.crt}, so only list files and symlinks to files. Change-Id: Ic8cea09e4d8004c35a9ae60dbbee7b41362e2c94 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/plugins/tls/openssl/qtlsbackend_openssl.cpp')
-rw-r--r--src/plugins/tls/openssl/qtlsbackend_openssl.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/tls/openssl/qtlsbackend_openssl.cpp b/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
index f9bebaa8121..85b17c9d491 100644
--- a/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
+++ b/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
@@ -392,8 +392,10 @@ QList<QSslCertificate> systemCaCertificates()
QStringLiteral("/usr/local/share/certs/ca-root-nss.crt") // FreeBSD's ca_root_nss
};
static const QStringList nameFilters = {u"*.pem"_s, u"*.crt"_s};
+ using F = QDirListing::IteratorFlag;
+ constexpr auto flags = F::FilesOnly | F::ResolveSymlinks; // Files and symlinks to files
for (const auto &directory : directories) {
- for (const auto &dirEntry : QDirListing(directory, nameFilters)) {
+ for (const auto &dirEntry : QDirListing(directory, nameFilters, flags)) {
// use canonical path here to not load the same certificate twice if symlinked
certFiles.insert(dirEntry.canonicalFilePath());
}