From ea4820370d5d4312b1efa4e38a39586256c33446 Mon Sep 17 00:00:00 2001 From: David B Date: Mon, 19 Dec 2011 20:20:30 +1100 Subject: [PATCH] Work around missing content length header information ... as the ripe ftp server seems not to send it ... Signed-off-by: David B --- blockfinder | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/blockfinder b/blockfinder index 97ef1fa..09abc67 100755 --- a/blockfinder +++ b/blockfinder @@ -62,7 +62,8 @@ def fetch(url, useragent): fetcher = urllib2.urlopen(req) length_header = fetcher.headers.get("content-length") if length_header == None: - raise Exception("Missing content-length header in reply from server.") + """ The server did not provide a content-length header. """ + length_header = -1 length = int(length_header) print "Fetching ", str (round(float(length/1024),2)) , " kilobytes" ret = "" @@ -71,12 +72,12 @@ def fetch(url, useragent): t_delta = time.time() - t_start if t_delta == 0: t_delta = 1 - update_progress_bar( - float(len(ret)) / length, - "%.2f K/s" % (len(ret) / 1024 / t_delta) ) + if length_header != -1: + update_progress_bar( float(len(ret)) / length, + "%.2f K/s" % (len(ret) / 1024 / t_delta) ) tmp = fetcher.read(1024) if len(tmp) == 0: - if len(ret) != length: + if len(ret) != length and length_header != -1: raise Exception("Expected %s bytes, only received %s" % ( len(ret), length )) print ""