changeset b0c4c51e1870 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=b0c4c51e1870 description: make file_props use session sid as the default sid
diffstat:
src/common/connection_handlers_events.py | 6 ++---- src/common/file_props.py | 2 +- src/common/jingle_ft.py | 3 ++- src/common/jingle_transport.py | 4 ++-- src/common/protocol/bytestream.py | 8 ++++---- src/filetransfers_window.py | 5 +++-- src/gui_interface.py | 5 ++--- 7 files changed, 16 insertions(+), 17 deletions(-)
diffs (152 lines):
diff -r 2bf24a2cc140 -r b0c4c51e1870 src/common/connection_handlers_events.py --- a/src/common/connection_handlers_events.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/common/connection_handlers_events.py Sat Aug 25 12:09:50 2012 -0400 @@ -1981,11 +1981,9 @@ self.FT_content.session.ourjid) self.FT_content.transport.set_connection( self.FT_content.session.connection) - sid = self.FT_content.transport.sid + sid = unicode(self.stanza.getTag('jingle').getAttr('sid')) self.file_props = FilesProp.getNewFileProp(self.conn.name, sid) - self.file_props.session_sid = unicode( - self.stanza.getTag('jingle').getAttr('sid') - ) + self.file_props.transport_sid = self.FT_content.transport.sid self.FT_content.file_props = self.file_props self.FT_content.transport.set_file_props(self.file_props) if self.file_props.streamhosts: diff -r 2bf24a2cc140 -r b0c4c51e1870 src/common/file_props.py --- a/src/common/file_props.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/common/file_props.py Sat Aug 25 12:09:50 2012 -0400 @@ -123,6 +123,7 @@ self.tt_account = None self.size = None self._sid = sid + self.transport_sid = None self.account = account self.mime_type = None self.algo = None @@ -130,7 +131,6 @@ self.syn_id = None self.seq = None self.hash_ = None - self.session_sid = None self.fd = None self.startexmpp = None self.session_type = None diff -r 2bf24a2cc140 -r b0c4c51e1870 src/common/jingle_ft.py --- a/src/common/jingle_ft.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/common/jingle_ft.py Sat Aug 25 12:09:50 2012 -0400 @@ -76,8 +76,9 @@ self.file_props.sender = session.ourjid self.file_props.receiver = session.peerjid self.file_props.session_type = 'jingle' - self.file_props.session_sid = session.sid + self.file_props.sid = session.sid self.file_props.transfered_size = [] + self.file_props.transport_sid = self.transport.sid log.info("FT request: %s" % file_props) if transport is None: self.transport = JingleTransportSocks5() diff -r 2bf24a2cc140 -r b0c4c51e1870 src/common/jingle_transport.py --- a/src/common/jingle_transport.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/common/jingle_transport.py Sat Aug 25 12:09:50 2012 -0400 @@ -250,7 +250,7 @@
def get_content(self): sesn = self.connection.get_jingle_session(self.ourjid, - self.file_props.session_sid) + self.file_props.sid) for content in sesn.contents.values(): if content.transport == self: return content @@ -261,7 +261,7 @@ if not self.connection: return sesn = self.connection.get_jingle_session(self.ourjid, - self.file_props.session_sid) + self.file_props.sid) if sesn is None: return
diff -r 2bf24a2cc140 -r b0c4c51e1870 src/common/protocol/bytestream.py --- a/src/common/protocol/bytestream.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/common/protocol/bytestream.py Sat Aug 25 12:09:50 2012 -0400 @@ -143,12 +143,12 @@ log.info("send_file_approval: jingle session accept") if file_props.session_type == 'jingle': session = self.get_jingle_session(file_props.sender, - file_props.session_sid) + file_props.sid) if not session: return content = None for c in session.contents.values(): - if c.transport.sid == file_props.sid: + if c.transport.sid == file_props.transport_sid: content = c break if not content: @@ -193,7 +193,7 @@ if not self.connection or self.connected < 2: return if file_props.session_type == 'jingle': - jingle = self._sessions[file_props.session_sid] + jingle = self._sessions[file_props.sid] jingle.cancel_session() return iq = xmpp.Iq(to=unicode(file_props.sender), typ='error') @@ -562,7 +562,7 @@ else: to = file_props.sender iq = xmpp.Iq(to=to, typ='error') - iq.setAttr('id', file_props.session_sid) + iq.setAttr('id', file_props.sid) err = iq.setTag('error') err.setAttr('code', unicode(code)) err.setData(msg) diff -r 2bf24a2cc140 -r b0c4c51e1870 src/filetransfers_window.py --- a/src/filetransfers_window.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/filetransfers_window.py Sat Aug 25 12:09:50 2012 -0400 @@ -257,7 +257,7 @@ sid = gajim.connections[account].start_file_transfer(fjid, file_props, True) - file_props.sid = sid + file_props.transport_sid = sid
if file_props.type_ == 'r': file_name = os.path.basename(file_props.file_name) @@ -643,7 +643,8 @@ self.model.set(iter_, 0, self.get_icon(status)) if transfered_size == full_size: # If we are receiver and this is a jingle session - if file_props.type_ == 'r' and file_props.session_sid: + if file_props.type_ == 'r' and \ + file_props.session_type == 'jingle': # Show that we are computing the hash self.set_status(file_props, 'computing') else: diff -r 2bf24a2cc140 -r b0c4c51e1870 src/gui_interface.py --- a/src/gui_interface.py Sat Aug 25 11:14:38 2012 -0400 +++ b/src/gui_interface.py Sat Aug 25 12:09:50 2012 -0400 @@ -941,7 +941,7 @@
def __compare_hashes(self, account, file_props): session = gajim.connections[account].get_jingle_session(jid=None, - sid=file_props.session_sid) + sid=file_props.sid) ft_win = self.instances['file_transfers'] if not file_props.hash_: # We disn't get the hash, sender probably don't support that @@ -981,9 +981,8 @@ return
if file_props.type_ == 'r': # we receive a file - # If we have a jingle session id, it is a jingle transfer # we compare hashes - if file_props.session_sid: + if file_props.session_type == 'jingle': # Compare hashes in a new thread self.hashThread = Thread(target=self.__compare_hashes, args=(account, file_props))