aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2023-11-23 15:13:39 +0000
committerIngo Klöcker <[email protected]>2023-11-23 15:13:39 +0000
commit1bbe2d4b707843cacf020c252ce883ec45bdbc38 (patch)
tree79f1b99a2d6203f515c457d96dc6be78697d3797
parentqt: On Windows, use UTF-8 when logging the error text (diff)
downloadgpgme-1bbe2d4b707843cacf020c252ce883ec45bdbc38.tar.gz
gpgme-1bbe2d4b707843cacf020c252ce883ec45bdbc38.zip
qt: Start dirmngr with gpgconf to avoid multiple instances
* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use "gpgconf --launch dirmngr" to start dirmngr. -- Using gpgconf to start dirmngr prevents multiple instances to be started by the concurrently running keyserver lookup and WKD lookup. GnuPG-bug-id: 6833
-rw-r--r--lang/qt/src/qgpgmewkdlookupjob.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/lang/qt/src/qgpgmewkdlookupjob.cpp b/lang/qt/src/qgpgmewkdlookupjob.cpp
index 266da0d5..e862f293 100644
--- a/lang/qt/src/qgpgmewkdlookupjob.cpp
+++ b/lang/qt/src/qgpgmewkdlookupjob.cpp
@@ -64,22 +64,22 @@ static GpgME::Error startDirmngr(Context *assuanCtx)
if (err) {
qCDebug(QGPGME_LOG) << "Error: Failed to get context for spawn engine (" << err.asString() << ")";
}
-
- const auto dirmngrProgram = GpgME::dirInfo("dirmngr-name");
+ const auto gpgconfProgram = GpgME::dirInfo("gpgconf-name");
const auto homedir = GpgME::dirInfo("homedir");
const char *argv[] = {
- dirmngrProgram,
+ gpgconfProgram,
"--homedir",
homedir,
- "--daemon",
+ "--launch",
+ "dirmngr",
NULL
};
auto ignoreIO = Data{Data::null};
if (!err) {
qCDebug(QGPGME_LOG) << "Starting dirmngr ...";
- err = spawnCtx->spawnAsync(dirmngrProgram, argv,
- ignoreIO, ignoreIO, ignoreIO,
- Context::SpawnDetached);
+ err = spawnCtx->spawn(gpgconfProgram, argv,
+ ignoreIO, ignoreIO, ignoreIO,
+ Context::SpawnDetached);
}
if (!err) {