diff libpurple/protocols/jabber/jingle.c @ 23870:aaf11cffe2b2

Prevent multiple voice and video sessions within the same conversation. Properly update the menu when starting or stopping a media session.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Thu, 14 Aug 2008 23:14:56 +0000
parents 551a462b346a
children b5ba1ab6ebdc
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jingle.c	Sat Aug 09 03:51:42 2008 +0000
+++ b/libpurple/protocols/jabber/jingle.c	Thu Aug 14 23:14:56 2008 +0000
@@ -1414,6 +1414,13 @@
 			purple_debug_error("jingle", "Jingle session with "
 					"id={%s} already exists\n", sid);
 			/* send iq error */
+		} else if ((session = jabber_jingle_session_find_by_jid(js,
+				xmlnode_get_attrib(packet, "from")))) {
+			purple_debug_fatal("jingle", "Jingle session with "
+					"jid={%s} already exists\n",
+					xmlnode_get_attrib(packet, "from"));
+			/* send jingle redirect packet */
+			return;
 		} else {
 			session = jabber_jingle_session_create_by_id(js, sid);
 			jabber_jingle_session_handle_session_initiate(session, jingle);