mirror of
https://github.com/transmission/transmission
synced 2025-03-13 07:33:02 +00:00
(trunk libT) #4666 "webseed downloading never gets downloaded" -- fixed.
The webseed in question is downloading from an ubuntuone.com url. We ask for piece-sized ranges in a couple of different concurrent connections, and curl hints to the server that it's okay to gzip the response, or deflate it, or leave it raw. It looks like there's a bug in the server or in libcurl (or, somehow, Transmission) that's not compressing or decompressing these responses correctly -- we never get the right number of bytes in the response from libcurl. If we ask for the contents uncompressed, the download progresses towards completion. As an aside, when testing this I noticed that deluge is a lot faster than Transmission on this torrent. In order for Transmission to reach parity here, webseed.c needs to know when it's appropriate to have more than 4 concurrent tasks and/or be able to request ranges > the torrent's piece size.
This commit is contained in:
parent
f9cc51f0d3
commit
9576dd16e2
1 changed files with 4 additions and 1 deletions
|
@ -188,8 +188,11 @@ createEasy( tr_session * s, struct tr_web * web, struct tr_web_task * task )
|
||||||
if( task->cookies != NULL )
|
if( task->cookies != NULL )
|
||||||
curl_easy_setopt( e, CURLOPT_COOKIE, task->cookies );
|
curl_easy_setopt( e, CURLOPT_COOKIE, task->cookies );
|
||||||
|
|
||||||
if( task->range )
|
if( task->range != NULL ) {
|
||||||
curl_easy_setopt( e, CURLOPT_RANGE, task->range );
|
curl_easy_setopt( e, CURLOPT_RANGE, task->range );
|
||||||
|
/* don't bother asking the server to compress webseed fragments */
|
||||||
|
curl_easy_setopt( e, CURLOPT_ENCODING, "identity" );
|
||||||
|
}
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue