From 55a06f4c01fb48573bc39e00009d02a4c2d73054 Mon Sep 17 00:00:00 2001
From: Ansgar Burchardt <ansgar@debian.org>
Date: Tue, 11 Aug 2015 21:36:19 +0200
Subject: [PATCH] Allow checking files given an open file handle.

---
 daklib/upload.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/daklib/upload.py b/daklib/upload.py
index 8ab532c2..b5a5f4f2 100644
--- a/daklib/upload.py
+++ b/daklib/upload.py
@@ -147,16 +147,19 @@ class HashedFile(object):
         @raise InvalidHashException: hash mismatch
         """
         path = os.path.join(directory, self.filename)
-
         try:
             with open(path) as fh:
-                size = os.fstat(fh.fileno()).st_size
-                hashes = apt_pkg.Hashes(fh)
+                self.check_fh(fh)
         except IOError as e:
             if e.errno == errno.ENOENT:
                 raise FileDoesNotExist(self.filename)
             raise
 
+    def check_fh(self, fh):
+        size = os.fstat(fh.fileno()).st_size
+        fh.seek(0)
+        hashes = apt_pkg.Hashes(fh)
+
         if size != self.size:
             raise InvalidHashException(self.filename, 'size', self.size, size)
 
-- 
2.39.5