diff libpurple/protocols/jabber/buddy.c @ 23814:d0ac3c438b71

Check remote JID's capabilities for audio and video XEP support.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Sat, 31 May 2008 20:15:34 +0000
parents 903fb6879521
children 3da0957e7821
line wrap: on
line diff
--- a/libpurple/protocols/jabber/buddy.c	Sat May 31 06:45:42 2008 +0000
+++ b/libpurple/protocols/jabber/buddy.c	Sat May 31 20:15:34 2008 +0000
@@ -2491,5 +2491,30 @@
 			js);
 }
 
+gboolean
+jabber_buddy_has_capability(JabberBuddy *jb, const gchar *cap)
+{
+	JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, NULL);
+	const GList *iter = NULL;
+	
+	if (!jbr) {
+		purple_debug_error("jabber", 
+				   "Unable to find caps: buddy might be offline\n");
+		return FALSE;
+	}
+	
+	if (!jbr->caps) {
+		purple_debug_error("jabber",
+				   "Unable to find caps: nothing known about buddy\n");
+		return FALSE;
+	}
+	
+	for (iter = jbr->caps->features ; iter ; iter = g_list_next(iter)) {
+		if (strcmp(iter->data, cap) == 0)
+			return TRUE;
+	}
+	
+	return FALSE;
+}