diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2015-08-28 22:02:33 -0700 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2015-08-29 09:41:34 -0700 |
commit | 4c4ab1149b0f71baaf88ff80e0a5d21fe253e9ab (patch) | |
tree | ea1ba78d33adadac183901101d319a0690002bf8 /daemon/dbus | |
parent | 5b597626b8ae137836b524bf814cf904c8c9c450 (diff) | |
download | gnome-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.c | 9 | ||||
-rw-r--r-- | daemon/dbus/gkd-secret-unlock.c | 12 |
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); |