changeset 79d34aeb9b36 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=79d34aeb9b36 description: send session-accept for file request
diffstat:
src/common/connection_handlers_events.py | 7 +++++++ src/common/jingle_ft.py | 5 +++++ src/common/jingle_session.py | 8 +++----- 3 files changed, 15 insertions(+), 5 deletions(-)
diffs (70 lines):
diff -r 3b91071c9876 -r 79d34aeb9b36 src/common/connection_handlers_events.py --- a/src/common/connection_handlers_events.py Wed Sep 05 10:59:59 2012 +0400 +++ b/src/common/connection_handlers_events.py Wed Sep 05 19:39:07 2012 -0400 @@ -2000,6 +2000,13 @@ self.file_props.receiver = self.conn._ft_get_our_jid() else: file_tag = desc.getTag('request').getTag('file') + h = file_tag.getTag('hash') + n = file_tag.getTag('name') + if h: + file_info = self.conn.get_files_info(hash_=h) + elif n: + file_info = self.conn.get_files_info(name=n) + self.file_props.file_name = file_info['file-name'] self.file_props.sender = self.conn._ft_get_our_jid() self.file_props.receiver = self.fjid self.file_props.type_ = 's' diff -r 3b91071c9876 -r 79d34aeb9b36 src/common/jingle_ft.py --- a/src/common/jingle_ft.py Wed Sep 05 10:59:59 2012 +0400 +++ b/src/common/jingle_ft.py Wed Sep 05 19:39:07 2012 -0400 @@ -47,6 +47,7 @@
class JingleFileTransfer(JingleContent): + def __init__(self, session, transport=None, file_props=None, use_security=False): JingleContent.__init__(self, session, transport) @@ -117,6 +118,10 @@ gajim.nec.push_incoming_event(FileRequestReceivedEvent(None, conn=self.session.connection, stanza=stanza, jingle_content=content, FT_content=self)) + if self.session.request: + # accept the request + self.session.approve_content(self.media, self.name) + self.session.accept_session()
def __on_session_initiate_sent(self, stanza, content, error, action): pass diff -r 3b91071c9876 -r 79d34aeb9b36 src/common/jingle_session.py --- a/src/common/jingle_session.py Wed Sep 05 10:59:59 2012 +0400 +++ b/src/common/jingle_session.py Wed Sep 05 19:39:07 2012 -0400 @@ -86,6 +86,7 @@ self.weinitiate = weinitiate # Are we requesting or offering a file? self.werequest = werequest + self.request = False # what state is session in? (one from JingleStates) self.state = JingleStates.ended if not sid: @@ -516,17 +517,14 @@ request = \ jingle.getTag('content').getTag('description').getTag('request') if request: + self.request = True h = request.getTag('file').getTag('hash') n = request.getTag('file').getTag('name') if h: file_info = self.connection.get_files_info(hash_=h) elif n: file_info = self.connection.get_files_info(name=n) - if file_info: - file_props = FilesProp.getFileProp(self.connection.name, - self.sid) - file_props.file_name = file_info['file-name'] - else: + if not file_info: log.warning('The peer ' + self.peerjid + \ ' is requesting a ' + \ 'file that we dont have')