libpurple/protocols/jabber/jingle.c

branch
soc.2008.vv
changeset 23747
86aacf5be74e
parent 23745
091a506a7018
child 23748
bc578c4d64f2
--- a/libpurple/protocols/jabber/jingle.c	Sat Jun 28 17:42:31 2008 +0000
+++ b/libpurple/protocols/jabber/jingle.c	Thu Jul 10 22:49:52 2008 +0000
@@ -1394,5 +1394,37 @@
 	}
 }
 
+void
+jabber_jingle_session_parse(JabberStream *js, xmlnode *packet)
+{
+	const gchar *type = xmlnode_get_attrib(packet, "type");
+
+	if (type && !strcmp(type, "set")) {
+		/* is this a Jingle package? */
+		xmlnode *jingle = xmlnode_get_child(packet, "jingle");
+		if (jingle) {
+			const char *action = xmlnode_get_attrib(jingle, "action");
+			purple_debug_info("jabber", "got Jingle package action = %s\n",
+							  action);
+			if (!strcmp(action, "session-initiate")) {
+				jabber_jingle_session_handle_session_initiate(js, packet);
+			} else if (!strcmp(action, "session-accept")
+					   || !strcmp(action, "content-accept")) {
+				jabber_jingle_session_handle_session_accept(js, packet);
+			} else if (!strcmp(action, "session-info")) {
+				jabber_jingle_session_handle_session_info(js, packet);
+			} else if (!strcmp(action, "session-terminate")) {
+				jabber_jingle_session_handle_session_terminate(js, packet);
+			} else if (!strcmp(action, "transport-info")) {
+				jabber_jingle_session_handle_transport_info(js, packet);
+			} else if (!strcmp(action, "content-replace")) {
+				jabber_jingle_session_handle_content_replace(js, packet);
+			}
+
+			return;
+		}
+	}
+}
+
 #endif /* USE_VV */
 

mercurial