changeset 25000:2cf44cc855fe

Add candidates instead of replacing them.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Wed, 07 Jan 2009 02:30:46 +0000
parents f45301cc2c84
children 2a1873a30474
files libpurple/media.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/media.c	Tue Jan 06 00:21:09 2009 +0000
+++ b/libpurple/media.c	Wed Jan 07 02:30:46 2009 +0000
@@ -66,6 +66,7 @@
 	GstElement *sink;
 
 	GList *local_candidates;
+	GList *remote_candidates;
 
 	gboolean candidates_prepared;
 
@@ -277,6 +278,8 @@
 
 	if (stream->local_candidates)
 		fs_candidate_list_destroy(stream->local_candidates);
+	if (stream->remote_candidates)
+		fs_candidate_list_destroy(stream->remote_candidates);
 
 	if (stream->local_candidate)
 		fs_candidate_destroy(stream->local_candidate);
@@ -1431,10 +1434,12 @@
 purple_media_add_remote_candidates(PurpleMedia *media, const gchar *sess_id,
 				   const gchar *name, GList *remote_candidates)
 {
-	FsStream *stream = purple_media_get_stream(media, sess_id, name)->stream;
+	PurpleMediaStream *stream = purple_media_get_stream(media, sess_id, name);
 	GError *err = NULL;
+	stream->remote_candidates = g_list_concat(stream->remote_candidates,
+			fs_candidate_list_copy(remote_candidates));
 
-	fs_stream_set_remote_candidates(stream, remote_candidates, &err);
+	fs_stream_set_remote_candidates(stream->stream, stream->remote_candidates, &err);
 
 	if (err) {
 		purple_debug_error("media", "Error adding remote candidates: %s\n",