[telepathy-salut/master] connection: save presence/message and set once established if set after self is created
Jonny Lamb
jonny.lamb at collabora.co.uk
Wed Sep 9 01:49:06 PDT 2009
Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
src/salut-connection.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/salut-connection.c b/src/salut-connection.c
index 40aad29..d2c50a3 100644
--- a/src/salut-connection.c
+++ b/src/salut-connection.c
@@ -184,6 +184,7 @@ struct _SalutConnectionPrivate
/* TpHandler for our presence on the lan */
SalutSelf *self;
+ gboolean self_established;
SalutPresenceId pre_connect_presence;
gchar *pre_connect_message;
@@ -294,6 +295,7 @@ salut_connection_init (SalutConnection *obj)
priv->discovery_client = NULL;
priv->self = NULL;
+ priv->self_established = FALSE;
priv->pre_connect_presence = SALUT_PRESENCE_AVAILABLE;
priv->pre_connect_message = NULL;
@@ -580,8 +582,9 @@ set_self_presence (SalutConnection *self,
SalutConnectionPrivate *priv = SALUT_CONNECTION_GET_PRIVATE (self);
TpBaseConnection *base = TP_BASE_CONNECTION (self);
- if (priv->self == NULL)
+ if (priv->self == NULL || !priv->self_established)
{
+ g_free (priv->pre_connect_message);
priv->pre_connect_presence = presence;
priv->pre_connect_message = g_strdup (message);
return;
@@ -973,6 +976,8 @@ _self_established_cb (SalutSelf *s, gpointer data)
TP_BASE_CONNECTION (self), TP_HANDLE_TYPE_CONTACT);
GError *error = NULL;
+ priv->self_established = TRUE;
+
g_free (self->name);
self->name = g_strdup (s->name);
--
1.5.6.5
More information about the telepathy-commits
mailing list