From 4f6687e8688d190b05441cb5acaeefa63f4fc8d7 Mon Sep 17 00:00:00 2001
From: Jefry Lagrange <jefry.reyes@gmail.com>
Date: Wed, 26 Sep 2012 20:46:09 -0400
Subject: [PATCH] refactoring

---
 src/common/connection_handlers_events.py | 6 ++----
 src/common/jingle.py                     | 6 +++---
 src/common/jingle_session.py             | 9 +++------
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/common/connection_handlers_events.py b/src/common/connection_handlers_events.py
index 2f94f80d15..9163b70922 100644
--- a/src/common/connection_handlers_events.py
+++ b/src/common/connection_handlers_events.py
@@ -2002,10 +2002,8 @@ class FileRequestReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
                 file_tag = desc.getTag('request').getTag('file')
                 h = file_tag.getTag('hash')
                 n = file_tag.getTag('name')
-                if h:
-                    file_info = self.conn.get_file_info(hash_=h)
-                elif n:
-                    file_info = self.conn.get_file_info(name=n)
+                pjid = gajim.get_jid_without_resource(self.fjid)
+                file_info = self.conn.get_file_info(pjid, hash_=h, 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
diff --git a/src/common/jingle.py b/src/common/jingle.py
index 985003aa73..4b466e4ad6 100644
--- a/src/common/jingle.py
+++ b/src/common/jingle.py
@@ -194,15 +194,15 @@ class ConnectionJingle(object):
         # to be requested again.
         self.files.append(file_)
 
-    def get_file_info(self, hash_=None, name=None):
+    def get_file_info(self, peerjid, hash_=None, name=None):
         if hash_:
             for f in self.files: # DEBUG
                 #if f['hash'] == '1294809248109223':
-                if f['hash'] == hash_:
+                if f['hash'] == hash_ and f['peerjid'] == peerjid:
                     return f
         elif name:
             for f in self.files:
-                if f['name'] == name:
+                if f['name'] == name and f['peerjid'] == peerjid:
                     return f
 
     def get_jingle_session(self, jid, sid=None, media=None):
diff --git a/src/common/jingle_session.py b/src/common/jingle_session.py
index 7ef8ea37e0..84ec8266c9 100644
--- a/src/common/jingle_session.py
+++ b/src/common/jingle_session.py
@@ -521,15 +521,12 @@ class JingleSession(object):
                 self.request = True
                 h = request.getTag('file').getTag('hash')
                 n = request.getTag('file').getTag('name')
-                if h:
-                    file_info = self.connection.get_file_info(hash_=h)
-                elif n:
-                    file_info = self.connection.get_file_info(name=n)
                 pjid = gajim.get_jid_without_resource(self.peerjid)
-                if not file_info or file_info['peerjid'] != pjid:
+                file_info = self.connection.get_file_info(pjid, h, n)
+                if not file_info:
                     log.warning('The peer ' + pjid + \
                                 ' is requesting a ' + \
-                                'file that we dont have or' + \
+                                'file that we dont have or ' + \
                                 'it is not allowed to request')
                     self.decline_session()
                     raise xmpp.NodeProcessed
-- 
GitLab