diff --git a/Changelog b/Changelog index 3e20167f0..135c595ab 100644 --- a/Changelog +++ b/Changelog @@ -3,6 +3,7 @@ - BUGFIX: Only one program preferences dialog is allowed at a time - BUGFIX: Link against boost and ssl to fix issues with gold linker - BUGFIX: Fix memory leak in RSS + - BUGFIX: Improved HTTP gzip compression detection in downloader * Mon Feb 8 2010 - Christophe Dumez - v2.1.4 - BUGFIX: Fix file prioritizing in a torrent diff --git a/src/downloadthread.cpp b/src/downloadthread.cpp index 957874073..c7e5ca9be 100644 --- a/src/downloadthread.cpp +++ b/src/downloadthread.cpp @@ -103,6 +103,7 @@ void downloadThread::downloadUrl(QString url){ // Spoof Firefox 3.5 user agent to avoid // Web server banning request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"); + request.setRawHeader("Accept-Encoding", ""); qDebug("Downloading %s...", request.url().toString().toLocal8Bit().data()); networkManager->get(request); } diff --git a/src/search_engine/helpers.py b/src/search_engine/helpers.py index a9ae7f464..6d7a408db 100644 --- a/src/search_engine/helpers.py +++ b/src/search_engine/helpers.py @@ -84,15 +84,14 @@ def download_file(url, referer=None): req.add_header('referer', referer) response = urllib2.urlopen(req) dat = response.read() - # Check if data is gzip encoded - response_info = response.info() - content_encoding = response_info.get('Content-Encoding') - if content_encoding is not None and 'gzip' in content_encoding: + # Check if it is gzipped + if dat[:2] == '\037\213': # Data is gzip encoded, decode it compressedstream = StringIO.StringIO(dat) gzipper = gzip.GzipFile(fileobj=compressedstream) extracted_data = gzipper.read() dat = extracted_data + # Write it to a file file.write(dat) file.close()