diff options
Diffstat (limited to 'telepathy-glib/account.c')
-rw-r--r-- | telepathy-glib/account.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/telepathy-glib/account.c b/telepathy-glib/account.c index 75f6375af..48202611f 100644 --- a/telepathy-glib/account.c +++ b/telepathy-glib/account.c @@ -444,6 +444,27 @@ _tp_account_update (TpAccount *account, TpConnectionStatus old_s = priv->connection_status; gboolean presence_changed = FALSE; + if (g_hash_table_lookup (properties, "Interfaces") != NULL) + { + gchar **interfaces, **iter; + + interfaces = tp_asv_get_boxed (properties, "Interfaces", G_TYPE_STRV); + + for (iter = interfaces; *iter != NULL; iter++) + { + if (tp_dbus_check_valid_interface_name (*iter, NULL)) + { + GQuark q = g_quark_from_string (*iter); + + tp_proxy_add_interface_by_id ((TpProxy *) account, q); + } + else + { + DEBUG ("\t\tInterface %s not valid", *iter); + } + } + } + if (g_hash_table_lookup (properties, "ConnectionStatus") != NULL) priv->connection_status = tp_asv_get_uint32 (properties, "ConnectionStatus", NULL); |