[Telepathy-commits] [telepathy-gabble/master] tube-dbus: check if the tube has already be offered when getting its state

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Tue Feb 3 03:36:26 PST 2009


---
 src/tube-dbus.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/src/tube-dbus.c b/src/tube-dbus.c
index ce6cafb..47f9957 100644
--- a/src/tube-dbus.c
+++ b/src/tube-dbus.c
@@ -168,6 +168,8 @@ struct _GabbleTubeDBusPrivate
   /* Number of bytes that will be in the next message, 0 if unknown */
   guint32 reassembly_bytes_needed;
 
+  /* TRUE if we initiated this tube and it has not been offered yet */
+  gboolean has_to_be_offered;
   gboolean closed;
 
   gboolean dispose_has_run;
@@ -647,7 +649,10 @@ gabble_tube_dbus_get_property (GObject *object,
         g_value_set_boxed (value, priv->parameters);
         break;
       case PROP_STATE:
-        g_value_set_uint (value, get_tube_state (self));
+        if (priv->has_to_be_offered)
+          g_value_set_uint (value, GABBLE_TUBE_CHANNEL_STATE_NOT_OFFERED);
+        else
+          g_value_set_uint (value, get_tube_state (self));
         break;
       case PROP_DBUS_ADDRESS:
         g_value_set_string (value, priv->dbus_srv_addr);
@@ -874,6 +879,12 @@ gabble_tube_dbus_constructor (GType type,
       priv->reassembly_bytes_needed = 0;
     }
 
+  if (priv->initiator == priv->self_handle)
+    {
+      /* We initiatied this tube and it has not been offered yet */
+      priv->has_to_be_offered = TRUE;
+    }
+
   return obj;
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list