empathy r730 - trunk/libempathy



Author: xclaesse
Date: Tue Mar 11 08:19:53 2008
New Revision: 730
URL: http://svn.gnome.org/viewvc/empathy?rev=730&view=rev

Log:
Fix: do not close the call channel if stream-engine is not yet started (Alban Crequy)


Modified:
   trunk/libempathy/empathy-tp-call.c

Modified: trunk/libempathy/empathy-tp-call.c
==============================================================================
--- trunk/libempathy/empathy-tp-call.c	(original)
+++ trunk/libempathy/empathy-tp-call.c	Tue Mar 11 08:19:53 2008
@@ -83,6 +83,7 @@
 };
 
 static guint signals[LAST_SIGNAL];
+static gchar *stream_engine_owner = NULL;
 
 G_DEFINE_TYPE (EmpathyTpCall, empathy_tp_call, G_TYPE_OBJECT)
 
@@ -523,11 +524,20 @@
                              const gchar *new_owner,
                              gpointer call)
 {
-  if (G_STR_EMPTY (new_owner))
+  /* G_STR_EMPTY(new_owner) means either stream-engine has not started yet or
+   * has crashed. We want to close the channel if stream-engine has crashed.
+   * */
+  empathy_debug (DEBUG_DOMAIN, "Watch SE: name='%s' old_owner='%s' new_owner='%s'",
+                 name, stream_engine_owner ? stream_engine_owner : "none",
+                 new_owner ? new_owner : "none");
+  if (! G_STR_EMPTY(stream_engine_owner) &&
+      G_STR_EMPTY (new_owner))
     {
       empathy_debug (DEBUG_DOMAIN, "Stream engine falled off the bus");
       empathy_tp_call_close_channel (call);
     }
+  g_free(stream_engine_owner);
+  stream_engine_owner = g_strdup(new_owner);
 }
 
 static void
@@ -654,6 +664,8 @@
       g_object_unref (priv->dbus_daemon);
     }
 
+  g_free(stream_engine_owner);
+
   (G_OBJECT_CLASS (empathy_tp_call_parent_class)->finalize) (object);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]