From 2be9cf21aef39a34a807eb29b29eec726ec68f97 Mon Sep 17 00:00:00 2001 From: saturneric Date: Wed, 31 Jul 2024 07:55:59 +0200 Subject: fix: addressing some of the issues identified --- src/m_pinentry/PinentryModule.cpp | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'src/m_pinentry/PinentryModule.cpp') diff --git a/src/m_pinentry/PinentryModule.cpp b/src/m_pinentry/PinentryModule.cpp index 5d767a9..01b2185 100644 --- a/src/m_pinentry/PinentryModule.cpp +++ b/src/m_pinentry/PinentryModule.cpp @@ -58,27 +58,38 @@ auto GFExecuteModule(GFModuleEvent *p_event) -> int { auto event = ConvertEventToMap(p_event); if (event["prev_was_bad"].isEmpty() || event["ask_for_new"].isEmpty()) { - GFModuleTriggerModuleEventCallback( - ConvertMapToEvent(event), GFGetModuleID(), - ConvertMapToParams({{"ret", "-1"}, {"passphrase", ""}})); + CB(event, GFGetModuleID(), + { + {"ret", "-1"}, + {"passphrase", ""}, + }); return -1; } QMetaObject::invokeMethod( - QApplication::instance()->thread(), [p_event, event]() -> int { + QApplication::instance()->thread(), [event]() -> int { auto *p = new RaisePinentry( nullptr, SecureCreateQSharedObject( event["uid_hint"], event["passphrase_info"], event["prev_was_bad"].toInt(), event["ask_for_new"].toInt())); - QObject::connect( - p, &RaisePinentry::SignalUserInputPassphraseCallback, p, - [event](const QSharedPointer &c) { - GFModuleTriggerModuleEventCallback( - ConvertMapToEvent(event), GFGetModuleID(), - ConvertMapToParams({{"passphrase", c->GetPassphrase()}})); - }); + QObject::connect(p, &RaisePinentry::SignalUserInputPassphraseCallback, + p, [event](QSharedPointer c) { + if (c) { + CB(event, GFGetModuleID(), + { + {"ret", "0"}, + {"passphrase", c->GetPassphrase()}, + }); + } else { + CB(event, GFGetModuleID(), + { + {"ret", "-1"}, + {"passphrase", ""}, + }); + } + }); p->Exec(); return 0; -- cgit v1.2.3