From b2897e36bbbf8bf4ba5746421fd108b4f9140ad3 Mon Sep 17 00:00:00 2001
From: Jefry Lagrange <jefry.reyes@gmail.com>
Date: Tue, 24 Jan 2012 16:51:26 -0500
Subject: [PATCH] better way to handle non supported hash algorithms

---
 src/common/jingle_ft.py     |  8 ++++++--
 src/common/xmpp/protocol.py | 10 ++--------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/common/jingle_ft.py b/src/common/jingle_ft.py
index a3dfaec315..0d7f057906 100644
--- a/src/common/jingle_ft.py
+++ b/src/common/jingle_ft.py
@@ -118,11 +118,15 @@ class JingleFileTransfer(JingleContent):
         if self.session.hash_algo == None:
             return
         try:
-            file = open(self.file_props['file-name'], 'r')
+            file_ = open(self.file_props['file-name'], 'r')
         except:
+            # can't open file
             return
         h = xmpp.Hashes()
-        hash_ = h.calculateHash(self.session.hash_algo, file)
+        hash_ = h.calculateHash(self.session.hash_algo, file_)
+        if not hash_:
+            # Hash alogrithm not supported
+            return
         self.file_props['hash'] = hash_
         h.addHash(hash_, self.session.hash_algo)
         checksum = xmpp.Node(tag='checksum',  
diff --git a/src/common/xmpp/protocol.py b/src/common/xmpp/protocol.py
index 007549691a..3a8f092a7d 100644
--- a/src/common/xmpp/protocol.py
+++ b/src/common/xmpp/protocol.py
@@ -1078,10 +1078,7 @@ class Hashes(Node):
             elif algo == 'sha-512':
                 hl = hashlib.sha512()
                 
-            if hl == None:
-                # Raise exception
-                raise Exception('Hash algorithm not supported')
-            else:
+            if hl:
                 hl.update(file_string)
                 hash_ = hl.hexdigest()
         else: # if it is a file
@@ -1095,10 +1092,7 @@ class Hashes(Node):
             elif algo == 'sha-512':
                 hl = hashlib.sha512()
                 
-            if hl == None:
-                # Raise exception
-                raise Exception('Hash algorithm not supported')
-            else:
+            if hl:
                 for line in file_string:
                     hl.update(line)
                 hash_ = hl.hexdigest()
-- 
GitLab