diff --git a/gajim/common/jingle_session.py b/gajim/common/jingle_session.py index 7bb9376fe714570da96fe99c7ba8b6d5e2139466..ecba30d0f93cbe5f149182618cbec89f894f53ba 100644 --- a/gajim/common/jingle_session.py +++ b/gajim/common/jingle_session.py @@ -538,7 +538,7 @@ def __on_session_initiate(self, stanza, jingle, error, action): # If we are not receiving a file # Check if there's already a session with this user: if contents[0].media != 'file': - for session in self.connection.get_module('Jingle').iter_jingle_sessions(self.peerjid): + for session in self.connection.get_module('Jingle').get_jingle_sessions(self.peerjid): if session is not self: reason = nbxmpp.Node('reason') alternative_session = reason.setTag('alternative-session') diff --git a/gajim/common/modules/bytestream.py b/gajim/common/modules/bytestream.py index 854a7bf886a3acd01ec19db6a6c5922aab78c4b9..ff37b660c98ac89b615904b13928de1016b8bd55 100644 --- a/gajim/common/modules/bytestream.py +++ b/gajim/common/modules/bytestream.py @@ -179,10 +179,9 @@ def send_file_rejection(self, file_props, code='403', typ=None): if not app.account_is_connected(self._account): return - if file_props.sid in self._sessions: - jingle = self._sessions[file_props.sid] - jingle.cancel_session() - return + for session in self._con.get_module('Jingle').get_jingle_sessions( + None, file_props.sid): + session.cancel_session() def send_success_connect_reply(self, streamhost): """ diff --git a/gajim/common/modules/jingle.py b/gajim/common/modules/jingle.py index eba5edc5b7240418552df74d168c2f8960b64809..8910245535fcb464c675b5bb0e1818c4f11a69aa 100644 --- a/gajim/common/modules/jingle.py +++ b/gajim/common/modules/jingle.py @@ -230,16 +230,16 @@ def __hash_support(self, contact): return 'sha-256' return None - def iter_jingle_sessions(self, jid, sid=None, media=None): + def get_jingle_sessions(self, jid, sid=None, media=None): if sid: - return (session for session in self._sessions.values() if \ - session.sid == sid) - sessions = (session for session in self._sessions.values() if \ - session.peerjid == jid) + return [session for session in self._sessions.values() if \ + session.sid == sid] + sessions = [session for session in self._sessions.values() if \ + session.peerjid == jid] if media: if media not in ('audio', 'video', 'file'): - return tuple() - return (session for session in sessions if session.get_content(media)) + return [] + return [session for session in sessions if session.get_content(media)] return sessions def set_file_info(self, file_):