changeset ddef5f0d00c2 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=ddef5f0d00c2 description: Change ConnectionJingle.__sessions keys from (jid, sid) to sid.
diffstat:
src/common/jingle.py | 35 +++++++++++++---------------------- src/common/jingle_session.py | 6 +++--- 2 files changed, 16 insertions(+), 25 deletions(-)
diffs (117 lines):
diff -r fb6d71094d32 -r ddef5f0d00c2 src/common/jingle.py --- a/src/common/jingle.py Sun Mar 14 16:59:01 2010 +0200 +++ b/src/common/jingle.py Sun Mar 14 21:51:04 2010 +0100 @@ -43,32 +43,23 @@ """
def __init__(self): - # dictionary: (jid, sessionid) => JingleSession object + # dictionary: sessionid => JingleSession object self.__sessions = {}
# dictionary: (jid, iq stanza id) => JingleSession object, # one time callbacks self.__iq_responses = {}
- def add_jingle(self, jingle): - """ - Add a jingle session to a jingle stanza dispatcher - - jingle - a JingleSession object. - """ - self.__sessions[(jingle.peerjid, jingle.sid)] = jingle - - def delete_jingle_session(self, peerjid, sid): + def delete_jingle_session(self, sid): """ Remove a jingle session from a jingle stanza dispatcher """ - key = (peerjid, sid) - if key in self.__sessions: + if sid in self.__sessions: #FIXME: Move this elsewhere? - for content in self.__sessions[key].contents.values(): + for content in self.__sessions[sid].contents.values(): content.destroy() - self.__sessions[key].callbacks = [] - del self.__sessions[key] + self.__sessions[sid].callbacks = [] + del self.__sessions[sid]
def _JingleCB(self, con, stanza): """ @@ -94,13 +85,13 @@ sid = jingle.getAttr('sid')
# do we need to create a new jingle object - if (jid, sid) not in self.__sessions: + if sid not in self.__sessions: #TODO: tie-breaking and other things... newjingle = JingleSession(con=self, weinitiate=False, jid=jid, sid=sid) - self.add_jingle(newjingle) + self.__sessions[sid] = newjingle
# we already have such session in dispatcher... - self.__sessions[(jid, sid)].on_stanza(stanza) + self.__sessions[sid].on_stanza(stanza)
raise xmpp.NodeProcessed
@@ -112,7 +103,7 @@ jingle.add_content('voice', JingleAudio(jingle)) else: jingle = JingleSession(self, weinitiate=True, jid=jid) - self.add_jingle(jingle) + self.__sessions[jingle.sid] = jingle jingle.add_content('voice', JingleAudio(jingle)) jingle.start_session() return jingle.sid @@ -125,15 +116,15 @@ jingle.add_content('video', JingleVideo(jingle)) else: jingle = JingleSession(self, weinitiate=True, jid=jid) - self.add_jingle(jingle) + self.__sessions[jingle.sid] = jingle jingle.add_content('video', JingleVideo(jingle)) jingle.start_session() return jingle.sid
def get_jingle_session(self, jid, sid=None, media=None): if sid: - if (jid, sid) in self.__sessions: - return self.__sessions[(jid, sid)] + if sid in self.__sessions: + return self.__sessions[sid] else: return None elif media: diff -r fb6d71094d32 -r ddef5f0d00c2 src/common/jingle_session.py --- a/src/common/jingle_session.py Sun Mar 14 16:59:01 2010 +0200 +++ b/src/common/jingle_session.py Sun Mar 14 21:51:04 2010 +0100 @@ -320,7 +320,7 @@ self.__dispatch_error(xmpp_error, jingle_error, text) # FIXME: Not sure when we would want to do that... if xmpp_error == 'item-not-found': - self.connection.delete_jingle_session(self.peerjid, self.sid) + self.connection.delete_jingle_session(self.sid)
def __on_transport_replace(self, stanza, jingle, error, action): for content in jingle.iterTags('content'): @@ -454,7 +454,7 @@ cn.on_stanza(stanza, content, error, action)
def __on_session_terminate(self, stanza, jingle, error, action): - self.connection.delete_jingle_session(self.peerjid, self.sid) + self.connection.delete_jingle_session(self.sid) reason, text = self.__reason_from_stanza(jingle) if reason not in ('success', 'cancel', 'decline'): self.__dispatch_error(reason, reason, text) @@ -608,7 +608,7 @@ text = '%s (%s)' % (reason, text) else: text = reason - self.connection.delete_jingle_session(self.peerjid, self.sid) + self.connection.delete_jingle_session(self.sid) self.connection.dispatch('JINGLE_DISCONNECTED', (self.peerjid, self.sid, None, text))