summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabrice Bellet <fabrice@bellet.info>2019-07-02 16:13:40 +0200
committerFabrice Bellet <fabrice@bellet.info>2019-07-02 16:13:40 +0200
commit049af2a5d64fac993f8cbd52b70e4a283abf8367 (patch)
tree5bc233bda14d2ae323f81ddf1df7d8a5f6c6e06d
parent811437ac38d60fbce0d33e3b8a61f27adeb63cc9 (diff)
downloadpidgin-049af2a5d64fac993f8cbd52b70e4a283abf8367.tar.gz
React only to the first stream info signal
-rw-r--r--libpurple/protocols/jabber/jingle/rtp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libpurple/protocols/jabber/jingle/rtp.c b/libpurple/protocols/jabber/jingle/rtp.c
index af4fdb67cf..8003e0253b 100644
--- a/libpurple/protocols/jabber/jingle/rtp.c
+++ b/libpurple/protocols/jabber/jingle/rtp.c
@@ -486,8 +486,15 @@ jingle_rtp_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type,
session);
g_object_unref(session);
- } else if (type == PURPLE_MEDIA_INFO_ACCEPT &&
+ /* The same signal is emited *four* times in case of acceptance
+ * by purple_media_stream_info() (stream acceptance, session
+ * acceptance, participant acceptance, and conference acceptance).
+ * We only react to the first one, where sid and name are given
+ * non-null values.
+ */
+ } else if (type == PURPLE_MEDIA_INFO_ACCEPT && sid && name &&
jingle_session_is_initiator(session) == FALSE) {
+
jingle_rtp_ready(session);
}
}