aboutsummaryrefslogtreecommitdiff
path: root/lib/base/filepush.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2007-05-24 20:09:57 +0000
committerFelix Domke <tmbinc@elitedvb.net>2007-05-24 20:09:57 +0000
commitae4d58285fffc667653197d17734d5018acef9d4 (patch)
treedeb67c8ab628a0deaea9e3feb08832fa9d7f1255 /lib/base/filepush.cpp
parent88101488f95cda7aff3dadb904edff963f914bfb (diff)
downloadenigma2-ae4d58285fffc667653197d17734d5018acef9d4.tar.gz
enigma2-ae4d58285fffc667653197d17734d5018acef9d4.zip
in case of short reads, re-align with blocksize
Diffstat (limited to 'lib/base/filepush.cpp')
-rw-r--r--lib/base/filepush.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp
index 1e5685ca..2a894cf5 100644
--- a/lib/base/filepush.cpp
+++ b/lib/base/filepush.cpp
@@ -174,6 +174,15 @@ void eFilePushThread::thread()
}
eDebug("eFilePushThread *read error* (%m) - not yet handled");
}
+
+ /* a read might be mis-aligned in case of a short read. */
+ int d = m_buf_end % m_blocksize;
+ if (d)
+ {
+ m_raw_source.lseek(-d, SEEK_CUR);
+ m_buf_end -= d;
+ }
+
if (m_buf_end == 0)
{
/* on EOF, try COMMITting once. */