summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Ruprecht <maiku@pidgin.im>2009-10-28 19:01:33 +0000
committerMichael Ruprecht <maiku@pidgin.im>2009-10-28 19:01:33 +0000
commitb7c5276efe37f9f307961ea2653317e2520c53c4 (patch)
tree8bc45602a68347472e2454aeac954fae86ef99a3
parent5e978c1f323f39ff986bdc97592c7094bd0662af (diff)
downloadpidgin-b7c5276efe37f9f307961ea2653317e2520c53c4.tar.gz
Handle individual streams in the Fs2 backend's stream-info callback for accept
signals.
-rw-r--r--libpurple/media/backend-fs2.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c
index 94bae684f6..aa58832a99 100644
--- a/libpurple/media/backend-fs2.c
+++ b/libpurple/media/backend-fs2.c
@@ -1079,32 +1079,28 @@ _stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type,
gchar *sid, gchar *name, gboolean local,
PurpleMediaBackendFs2 *self)
{
- if (type == PURPLE_MEDIA_INFO_ACCEPT) {
- GList *streams = _get_streams(self, sid, name);
-
- for (; streams; streams =
- g_list_delete_link(streams, streams)) {
- PurpleMediaBackendFs2Stream *stream = streams->data;
- GError *err = NULL;
+ if (type == PURPLE_MEDIA_INFO_ACCEPT && sid != NULL && name != NULL) {
+ PurpleMediaBackendFs2Stream *stream =
+ _get_stream(self, sid, name);
+ GError *err = NULL;
- g_object_set(G_OBJECT(stream->stream), "direction",
- _session_type_to_fs_stream_direction(
- stream->session->type), NULL);
+ g_object_set(G_OBJECT(stream->stream), "direction",
+ _session_type_to_fs_stream_direction(
+ stream->session->type), NULL);
- if (stream->remote_candidates == NULL)
- continue;
+ if (stream->remote_candidates == NULL)
+ return;
- fs_stream_set_remote_candidates(stream->stream,
- stream->remote_candidates, &err);
+ fs_stream_set_remote_candidates(stream->stream,
+ stream->remote_candidates, &err);
- if (err == NULL)
- continue;
+ if (err == NULL)
+ return;
- purple_debug_error("backend-fs2", "Error adding "
- "remote candidates: %s\n",
- err->message);
- g_error_free(err);
- }
+ purple_debug_error("backend-fs2", "Error adding "
+ "remote candidates: %s\n",
+ err->message);
+ g_error_free(err);
} else if (local == TRUE && (type == PURPLE_MEDIA_INFO_MUTE ||
type == PURPLE_MEDIA_INFO_UNMUTE)) {
PurpleMediaBackendFs2Private *priv =