summaryrefslogtreecommitdiff
path: root/src/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection.c')
-rw-r--r--src/connection.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/connection.c b/src/connection.c
index e7f1994..8e1c0fc 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -107,12 +107,6 @@ static const gchar * implemented_interfaces[] = {
NULL
};
-const gchar **
-haze_connection_get_implemented_interfaces (void)
-{
- return implemented_interfaces;
-}
-
static void
add_always_present_connection_interfaces (GPtrArray *interfaces)
{
@@ -136,6 +130,23 @@ haze_connection_get_interfaces_always_present (TpBaseConnection *base)
return interfaces;
}
+static void add_optional_connection_interfaces (GPtrArray *ifaces,
+ PurplePluginProtocolInfo *prpl_info);
+
+/* Returns a (transfer container) not NULL terminated of (const gchar *)
+ * interface names. */
+GPtrArray *
+haze_connection_dup_implemented_interfaces (PurplePluginProtocolInfo *prpl_info)
+{
+ GPtrArray *ifaces;
+
+ ifaces = g_ptr_array_new ();
+ add_always_present_connection_interfaces (ifaces);
+ add_optional_connection_interfaces (ifaces, prpl_info);
+
+ return ifaces;
+}
+
struct _HazeConnectionPrivate
{
gchar *username;