Mitchell Livingston
3eb8b12fa8
#4704 req->left = tr_cpLeftUntilComplete( &tor->completion ) should end with a semicolon
2012-01-11 22:31:02 +00:00
Jordan Lee
57d273cd61
(trunk libT) #4700 "compilation fails on FreeBSD because it can't find alloca.h" -- fixed.
2012-01-10 19:18:18 +00:00
Jordan Lee
cac5c360f2
(trunk libT) #4690 "getPeerCandidates() uses more CPU than necessary" -- fixed.
...
Once we've scored all n candidates, we sort them by score so that we can pick out the k best candidates. If n is large, sorting them can be expensive. If we use the Selection Algorithm, we select in O(n) without having to sort.
2011-12-31 21:28:53 +00:00
Jordan Lee
a8468a7b09
(trunk libT) #4684 "tr_cpSizeWhenDone() is slow for huge torrents that we're only partially downloading" -- fixed.
...
There are actually two different implementations of the byte-counting in that function: a slower implementation was added prior to 2.40 in r12918 to double-check the standard implementation. This checking was added to help smoke out a bug that was fixed in r12920, but I forgot to remove that slower implementation.
2011-12-22 19:35:13 +00:00
Jordan Lee
9576dd16e2
(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.
2011-12-14 05:58:23 +00:00
Jordan Lee
f9cc51f0d3
(trunk libT) fix a minor memory leak in the bencode regression tests.
...
Found by llvm's static analyzer. This is a minor issue since the leak is in an automated test rather than in shipping code, but it's still better to fix it.
2011-12-14 05:44:15 +00:00
Jordan Lee
0d13057111
(trunk libT) fix warnings in fileset_get_empty_slot() found by llvm's static-build analyzer.
...
static-build found a potential NULL pointer dereference. The circumstances where this could get triggered don't seem very likely, but doesn't hurt to fix the warning.
2011-12-14 05:42:15 +00:00
Jordan Lee
206b1a9a5f
(trunk web) fix warnings in tr_urlIsValidTracker() and tr_urlIsValid() found by llvm's scan-build.
...
scan-build found similar warnings in these two functions relating to allowing NULL pointers to be passed as arguments to functions that don't allow NULL. So now those NULL checks are made explicit before the function calls.
2011-12-14 05:40:21 +00:00
Jordan Lee
1cfeb4debb
(trunk libT) #4644 "Transmission can't download big files from webseed." -- fix overflow error with a patch based on one from and_cesbo. (Modified by Jordan to add random bugs.)
2011-12-10 18:42:52 +00:00
Mitchell Livingston
0a9b47da50
whoops typo
2011-11-22 03:30:37 +00:00
Mitchell Livingston
caa1c8fb8f
#4643 Support µTorrent's long-version-number peer id
2011-11-22 03:02:18 +00:00
Jordan Lee
42997e4102
don't use the word 'template' as a variable name, since it's a reserved word in C++
2011-11-12 00:16:04 +00:00
Jordan Lee
b3d382874a
(trunk libT) #4625 "Transmission 2.42 fails to build on Solaris 10: Undefined symbol 'mkdtemp'" -- fixed.
2011-11-10 03:31:43 +00:00
Jordan Lee
4f1db26672
(trunk libT) bandwidth.c: minor phaseOne() improvements suggested by livings
2011-10-25 21:54:51 +00:00
Jordan Lee
82595e8ad8
(trunk libT) #4592 "Algorithm bug in bandwidth allocation" -- apply patch from Algorithmus
2011-10-25 16:56:19 +00:00
Jordan Lee
ae972b50c4
utils.h's public function tr_realpath() function relies on the private constant TR_MAX_PATH. Make TR_MAX_PATH public.
2011-10-25 15:57:10 +00:00
Jordan Lee
4d74095591
(trunk libT) #4571 "can't edit UDP trackers via RPC" -- fixed.
2011-10-17 12:44:17 +00:00
Jordan Lee
ed56cd1193
(trunk libT) #4526 "do not skip scrape unless all three scrape fields came with announce" -- add field initializers.
2011-10-14 00:27:14 +00:00
Jordan Lee
9c6e686882
(trunk libT) #4556 "Transmission 2.40 fails to connect with UDP trackers on big endian systems" -- fixed.
2011-10-14 00:02:36 +00:00
Jordan Lee
576ded51d0
(trunk libT) #4323 "allow usage of system miniupnpc" -- possibly fix OS X regression caused by r12957
2011-10-09 14:51:13 +00:00
Jordan Lee
01f68ca846
(trunk libT) #4323 "Allow usage of system miniupnpc" -- fixed.
2011-10-09 02:05:52 +00:00
Jordan Lee
c9421c4041
(trunk libT) #4530 "lastAnnounceResult is not properly set" -- fixed.
2011-10-09 00:21:36 +00:00
Jordan Lee
bc4e3f137c
(trunk libT) #4526 "do not skip scrape unless all three scrape fields came with announce" -- fixed.
2011-10-09 00:18:18 +00:00
Jordan Lee
2786136015
(trunk) #4490 "Transmission 2.40b1 fails to build: undefined references" -- fixed.
2011-10-08 23:53:27 +00:00
Mitchell Livingston
0808bdd2fe
We now require Mac OS X 10.6 or later. Make that change and all the nice little adjustments that go with it.
2011-10-06 00:30:40 +00:00
Jordan Lee
0337806b03
#4506 'crash from memory corruption somewhere called from tr_handshakeDone()' -- possible fix.
2011-09-28 16:07:35 +00:00
Jordan Lee
1aefd9f1de
munge tr_torrent's memory immediately before freeing it.
2011-09-28 16:06:19 +00:00
Mitchell Livingston
eb46c13d74
#4524 Redirects with https are broken
2011-09-27 22:34:52 +00:00
Jordan Lee
16de40c78d
remove redundant assertion
2011-09-27 02:44:07 +00:00
Jordan Lee
18b90f60bc
(trunk libt) in tr_bitfieldSetRaw(), add a `bounded' argument for cases where we know how large the final bitfield will be. This can be used ensure that the excess bits at the end of the array are zeroed out and safe for bitfield.c's countArray() function.
2011-09-26 22:50:42 +00:00
Jordan Lee
bf6c2a0df7
peer.have was being initialized to the block count, rather than the piece count, resulting in wasted overhead.
2011-09-26 22:48:50 +00:00
Jordan Lee
0c4fe00658
(trunk libT) #4511 "fromLpd in rpc" -- add to torrent-get's "peersFrom" response.
2011-09-26 20:49:26 +00:00
Jordan Lee
4857e8ebb1
(trunk libT) add several more tr_completion assertions to smoke out the (sizeWhenDone() < sizeNow()) error reported in the forums
2011-09-26 06:18:48 +00:00
Jordan Lee
0fde2ddc8e
in freeTorrent(), don't destruct the torrent's completion field until after calling tr_announceRemoveTorrent()
2011-09-26 05:57:03 +00:00
Jordan Lee
5332d234bb
(trunk libT) #4504 "crash when adding malformed magnet link" -- fixed.
2011-09-25 21:51:50 +00:00
Jordan Lee
4522a3c055
(trunk libT) #4507 "scrape min_request_interval no longer working" -- fixed.
2011-09-25 21:48:34 +00:00
Jordan Lee
246d6a72a3
(trunk libT) #4502 "allow verbose scrape" -- patch by reardon.
2011-09-24 05:54:47 +00:00
Jordan Lee
daa795fb6a
#4496 'freeze when having a huge torrent' -- more tweaks based on Shark reports from MechMK1
2011-09-21 23:04:39 +00:00
Jordan Lee
6f05024dab
#4496 'freeze when having a huge torrent' -- remove redundant debug calls to countArray(). This is a second iteration of optimizations based on MechMK1's Shark report.
2011-09-21 20:17:36 +00:00
Jordan Lee
3a3cef615c
#4344 'zero peers observed with 2.32' -- experimental change suggested by gunzip
2011-09-21 00:20:02 +00:00
Jordan Lee
0560b14cfe
#4496 'freeze when having a huge torrent' -- add a bitfield helper function to init the bitfield from an array of flags.
2011-09-20 23:39:40 +00:00
Jordan Lee
46154e7309
(trunk libT) add a magnet link check to deleteLocalData(). Thanks to plaes for reporting this issue.
2011-09-16 23:08:35 +00:00
Jordan Lee
e2240e0831
(trunk libT) #4473 'underflow from malformed ssha1 can crash tr_ssha1_matches()' -- bah, fix oops in r12884.
2011-09-16 22:55:58 +00:00
Jordan Lee
bb59768557
(trunk libT) #4473 "underflow from malformed ssha1 can crash tr_ssha1_matches()" -- fixed. Thanks to Volfram for finding this crash and tracking down the cause.
2011-09-16 22:53:26 +00:00
Jordan Lee
6add3fb940
(trunk web) small refactoring of webseed's batch processing.
...
1. move the callback structs' declarations next to the callback functions where they're used.
2. rename the callback structs to clarify their link to the callback functions.
3. constify some of the callback functions' local variables.
4. clarify some of the comments.
2011-09-12 21:46:15 +00:00
Jordan Lee
3a39486cf1
tr_free() already checks for null, so no need for the caller to wrap it in an 'if not null' test
2011-09-12 20:41:28 +00:00
Jordan Lee
10734ab7bc
remove two redundant variables from tr_webseed_task
2011-09-12 20:40:09 +00:00
Jordan Lee
fd6e7a7fbd
(trunk libT) #4445 "transmission only downloads partially from webseeds with redirections" -- fixed with patch from alexat.
2011-09-12 05:39:27 +00:00
Jordan Lee
cfa4077e5e
(trunk libT) #4437 "Multi file webseeds don't work" -- handle multifile torrents with web seed urls that incorrectly don't end with a slash.
2011-09-06 16:45:48 +00:00
Jordan Lee
b3db349c83
(trunk libt) #4437 'multi file webseeds do not work' -- revert r12740, which was a bad patch.
2011-09-06 16:10:27 +00:00