From c3268ca394713daffada1b2321d00002f27938b9 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Tue, 17 Apr 2007 13:39:35 -0700
Subject: [PATCH] download.py: don't truncate tail segments that are the same
 size as all the others

---
 src/allmydata/download.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/allmydata/download.py b/src/allmydata/download.py
index 1861d75d..e668dde8 100644
--- a/src/allmydata/download.py
+++ b/src/allmydata/download.py
@@ -323,7 +323,10 @@ class FileDownloader:
         def _done(res):
             # trim off any padding added by the upload side
             data = ''.join(res)
-            tail_size = self._size % self._segment_size
+            # we never send empty segments. If the data was an exact multiple
+            # of the segment size, the last segment will be full.
+            pad_size = mathutil.pad_size(self._size, self._segment_size)
+            tail_size = self._segment_size - pad_size
             self._output.write(data[:tail_size])
         d.addCallback(_done)
         return d
-- 
2.45.2