aboutsummaryrefslogtreecommitdiffstats
path: root/src/m_pinentry/PinentryModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_pinentry/PinentryModule.cpp')
-rw-r--r--src/m_pinentry/PinentryModule.cpp33
1 files changed, 22 insertions, 11 deletions
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<GpgPassphraseContext>(
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<GpgPassphraseContext> &c) {
- GFModuleTriggerModuleEventCallback(
- ConvertMapToEvent(event), GFGetModuleID(),
- ConvertMapToParams({{"passphrase", c->GetPassphrase()}}));
- });
+ QObject::connect(p, &RaisePinentry::SignalUserInputPassphraseCallback,
+ p, [event](QSharedPointer<GpgPassphraseContext> c) {
+ if (c) {
+ CB(event, GFGetModuleID(),
+ {
+ {"ret", "0"},
+ {"passphrase", c->GetPassphrase()},
+ });
+ } else {
+ CB(event, GFGetModuleID(),
+ {
+ {"ret", "-1"},
+ {"passphrase", ""},
+ });
+ }
+ });
p->Exec();
return 0;