diff options
author | Fabrice Bellet <fabrice@bellet.info> | 2019-07-02 16:13:40 +0200 |
---|---|---|
committer | Fabrice Bellet <fabrice@bellet.info> | 2019-07-02 16:13:40 +0200 |
commit | 049af2a5d64fac993f8cbd52b70e4a283abf8367 (patch) | |
tree | 5bc233bda14d2ae323f81ddf1df7d8a5f6c6e06d | |
parent | 811437ac38d60fbce0d33e3b8a61f27adeb63cc9 (diff) | |
download | pidgin-049af2a5d64fac993f8cbd52b70e4a283abf8367.tar.gz |
React only to the first stream info signal
-rw-r--r-- | libpurple/protocols/jabber/jingle/rtp.c | 9 |
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); } } |