[gnome-keyring/wip/cosimoc/gdbus-fixes: 3/11] dbus: only emit 'Completed' signal to original caller
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-keyring/wip/cosimoc/gdbus-fixes: 3/11] dbus: only emit 'Completed' signal to original caller
- Date: Sat, 29 Aug 2015 16:55:00 +0000 (UTC)
commit 4c4ab1149b0f71baaf88ff80e0a5d21fe253e9ab
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Aug 28 22:02:33 2015 -0700
dbus: only emit 'Completed' signal to original caller
Matches the pre-GDBus behavior.
daemon/dbus/gkd-secret-prompt.c | 9 +++++++--
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 65ee413..207cc8a 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 02f8cff..a1a551f 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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]