[Telepathy-commits] [telepathy-mission-control/master] Requests errors have nothing to do with dispatcher
Alberto Mardegan
alberto.mardegan at nokia.com
Mon Nov 17 00:05:21 PST 2008
Leave handling of errors on channel requested through the compat interface to
mcd-account-compat.c. Don't emit channel request errors on the dispatcher.
---
src/mcd-account-compat.c | 26 ++++++++++++--------------
src/mcd-service.c | 27 ---------------------------
2 files changed, 12 insertions(+), 41 deletions(-)
diff --git a/src/mcd-account-compat.c b/src/mcd-account-compat.c
index 80a982e..ba27d3c 100644
--- a/src/mcd-account-compat.c
+++ b/src/mcd-account-compat.c
@@ -39,6 +39,7 @@
#include "mcd-account-compat.h"
#include "mcd-account-manager.h"
#include "mcd-misc.h"
+#include "mcd-service.h"
#include "_gen/interfaces.h"
static guint last_operation_id = 1;
@@ -254,27 +255,24 @@ on_channel_status_changed (McdChannel *channel, McdChannelStatus status,
g_debug ("%s (%u)", G_STRFUNC, status);
g_return_if_fail (MCD_IS_ACCOUNT (account));
- if (status == MCD_CHANNEL_DISPATCHING)
- {
- /* from now on, errors are reported by the dispatcher */
- g_signal_handlers_disconnect_by_func (channel,
- on_channel_status_changed,
- account);
- }
- else if (status == MCD_CHANNEL_FAILED)
+ if (status == MCD_CHANNEL_FAILED)
{
+ guint requestor_serial;
+ gchar *requestor_client_id;
const GError *error;
McdMaster *master;
- McdDispatcher *dispatcher = NULL;
master = mcd_master_get_default ();
- g_object_get (master, "dispatcher", &dispatcher, NULL);
- g_return_if_fail (dispatcher != NULL);
+ g_return_if_fail (MCD_IS_SERVICE (master));
error = _mcd_channel_get_error (channel);
- g_signal_emit_by_name (G_OBJECT(dispatcher),
- "dispatch-failed", channel, error);
- g_object_unref (dispatcher);
+ g_object_get (channel,
+ "requestor-serial", &requestor_serial,
+ "requestor-client-id", &requestor_client_id,
+ NULL);
+ g_signal_emit_by_name (master, "mcd-error", requestor_serial,
+ requestor_client_id, error->code);
+ g_free (requestor_client_id);
}
}
diff --git a/src/mcd-service.c b/src/mcd-service.c
index 1c9a012..5c2aeea 100644
--- a/src/mcd-service.c
+++ b/src/mcd-service.c
@@ -753,28 +753,6 @@ _on_dispatcher_channel_dispatched (McdDispatcher *dispatcher,
}
static void
-_on_dispatcher_channel_dispatch_failed (McdDispatcher *dispatcher,
- McdChannel *channel, GError *error,
- McdService *obj)
-{
- guint requestor_serial;
- gchar *requestor_client_id;
-
- g_debug ("%s", G_STRFUNC);
- g_object_get (channel, "requestor-serial", &requestor_serial,
- "requestor-client-id", &requestor_client_id, NULL);
-
- if (requestor_client_id)
- {
- g_signal_emit_by_name (obj, "mcd-error", requestor_serial,
- requestor_client_id, error->code);
- g_free (requestor_client_id);
- }
-
- g_debug ("MC ERROR (channel request): %s", error->message);
-}
-
-static void
mcd_dispose (GObject * obj)
{
McdServicePrivate *priv;
@@ -817,9 +795,6 @@ mcd_dispose (GObject * obj)
g_signal_handlers_disconnect_by_func (priv->dispatcher,
_on_dispatcher_channel_dispatched,
self);
- g_signal_handlers_disconnect_by_func (priv->dispatcher,
- _on_dispatcher_channel_dispatch_failed,
- self);
g_object_unref (priv->dispatcher);
}
@@ -866,8 +841,6 @@ mcd_service_constructed (GObject *obj)
G_CALLBACK (_on_dispatcher_channel_removed), obj);
g_signal_connect (priv->dispatcher, "dispatched",
G_CALLBACK (_on_dispatcher_channel_dispatched), obj);
- g_signal_connect (priv->dispatcher, "dispatch-failed",
- G_CALLBACK (_on_dispatcher_channel_dispatch_failed), obj);
mcd_register_dbus_object (MCD_OBJECT (obj));
mcd_debug_print_tree (obj);
--
1.5.6.5
More information about the Telepathy-commits
mailing list