From 0b6f6fd4ec80f8805cfa9135980903f3038f4c49 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 9 Jan 2011 13:41:35 +0100 Subject: closed #213, #212, #101 --- module/network/HTTPChunk.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'module/network/HTTPChunk.py') diff --git a/module/network/HTTPChunk.py b/module/network/HTTPChunk.py index f66121880..eb22fa3c8 100644 --- a/module/network/HTTPChunk.py +++ b/module/network/HTTPChunk.py @@ -142,21 +142,28 @@ class HTTPChunk(HTTPRequest): self.c.setopt(pycurl.WRITEFUNCTION, self.writeBody) self.c.setopt(pycurl.HEADERFUNCTION, self.writeHeader) + # request one byte more, since some servers in russia seems to have a defect arihmetic unit + if self.resume: self.fp = open(self.p.info.getChunkName(self.id), "ab") self.arrived = self.fp.tell() if self.range: - print "Chunked resume with range %i-%i" % (self.arrived+self.range[0], self.range[1]) - self.c.setopt(pycurl.RANGE, "%i-%i" % (self.arrived+self.range[0], self.range[1])) + #do nothing if chunk already finished + if not self.arrived+self.range[0] - self.range[1]: return None + + range = "%i-%i" % (self.arrived+self.range[0], self.range[1]+1) + print "Chunked resume with range %s" % range + self.c.setopt(pycurl.RANGE, range) else: print "Resume File from %i" % self.arrived self.c.setopt(pycurl.RESUME_FROM, self.arrived) else: if self.range: - print "Chunked with range %i-%i" % self.range - self.c.setopt(pycurl.RANGE, "%i-%i" % self.range) + range = "%i-%i" % (self.range[0], self.range[1]+1) + print "Chunked with range %s" % range + self.c.setopt(pycurl.RANGE, range) self.fp = open(self.p.info.getChunkName(self.id), "wb") -- cgit v1.2.3