summaryrefslogtreecommitdiff
path: root/daemon/dbus
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2015-08-28 22:02:33 -0700
committerCosimo Cecchi <cosimoc@gnome.org>2015-08-29 09:41:34 -0700
commit4c4ab1149b0f71baaf88ff80e0a5d21fe253e9ab (patch)
treeea1ba78d33adadac183901101d319a0690002bf8 /daemon/dbus
parent5b597626b8ae137836b524bf814cf904c8c9c450 (diff)
downloadgnome-keyring-4c4ab1149b0f71baaf88ff80e0a5d21fe253e9ab.tar.gz
dbus: only emit 'Completed' signal to original caller
Matches the pre-GDBus behavior.
Diffstat (limited to 'daemon/dbus')
-rw-r--r--daemon/dbus/gkd-secret-prompt.c9
-rw-r--r--daemon/dbus/gkd-secret-unlock.c12
2 files changed, 16 insertions, 5 deletions
diff --git a/daemon/dbus/gkd-secret-prompt.c b/daemon/dbus/gkd-secret-prompt.c
index 65ee413d..207cc8a6 100644
--- a/daemon/dbus/gkd-secret-prompt.c
+++ b/daemon/dbus/gkd-secret-prompt.c
@@ -72,8 +72,13 @@ emit_completed (GkdSecretPrompt *self, gboolean dismissed)
g_return_if_fail (GKD_SECRET_PROMPT_GET_CLASS (self)->encode_result);
variant = GKD_SECRET_PROMPT_GET_CLASS (self)->encode_result (self);
- gkd_exported_prompt_emit_completed (self->pv->skeleton,
- dismissed, variant);
+ /* Emit signal manually, so that we can set the caller as destination */
+ g_dbus_connection_emit_signal (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (self->pv->skeleton)),
+ self->pv->caller,
+ g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (self->pv->skeleton)),
+ "org.freedesktop.Secret.Prompt", "Completed",
+ g_variant_new ("(b@v)", dismissed, variant),
+ NULL);
}
static void
diff --git a/daemon/dbus/gkd-secret-unlock.c b/daemon/dbus/gkd-secret-unlock.c
index 02f8cffb..a1a551f6 100644
--- a/daemon/dbus/gkd-secret-unlock.c
+++ b/daemon/dbus/gkd-secret-unlock.c
@@ -149,6 +149,7 @@ mark_as_complete (GkdSecretUnlock *self, gboolean dismissed)
const char *value;
gint i;
GVariantBuilder builder;
+ GVariant *variant;
if (self->completed)
return FALSE;
@@ -160,9 +161,14 @@ mark_as_complete (GkdSecretUnlock *self, gboolean dismissed)
g_variant_builder_add (&builder, "o", value);
}
- gkd_exported_prompt_emit_completed (self->skeleton,
- dismissed,
- g_variant_new_variant (g_variant_builder_end (&builder)));
+ /* Emit signal manually, so that we can set the caller as destination */
+ variant = g_variant_new_variant (g_variant_builder_end (&builder));
+ g_dbus_connection_emit_signal (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (self->skeleton)),
+ self->caller,
+ g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (self->skeleton)),
+ "org.freedesktop.Secret.Prompt", "Completed",
+ g_variant_new ("(b@v)", dismissed, variant),
+ NULL);
/* Fire off the next item in the unlock prompt queue */
other = g_queue_pop_head (&unlock_prompt_queue);