Jordan Lee
5c34257ee0
(trunk libT) #4943 "tr_sessionClearStats() does not set the stats' dirty flag to true s.t. stats.json gets saved"
2012-07-01 04:00:27 +00:00
Jordan Lee
f55ab8dddb
(trunk libT) move torrent.c's private function fileExists() to the utility function tr_fileExists() so that it can also be used by stats.c
2012-07-01 03:05:36 +00:00
Jordan Lee
3398a48e57
(trunk libT) #4402 "Transmission Bandwidth allocation getting overflows" -- use gvdl's patch '4402-uint-bpsoverflow.patch'
2012-07-01 02:17:35 +00:00
Jordan Lee
99b615b3b8
(trunk libT) #4931 "Wrong peer percentages for magnetized transfers" -- fixed.
...
tr_peerUpdateProgress() is guessing at the progress size, but when we don't have the data size yet that guess isn't very good. Add boundary
clamps on the peer.progress field.
2012-07-01 02:00:02 +00:00
Jordan Lee
df80c1ce03
Fix the size for the peers and peersFrom dictionaries.
...
By setting the initial allocation size correctly, we can avoid unnecessary resizing when adding all the dictionary's fields.
2012-07-01 01:42:58 +00:00
Jordan Lee
d717248e75
(trunk libT) fix the Linux build wrt compiling with the new snapshot of libutp checked into r13317
...
Previously we made sure to include stdbool.h (via transmission.h) before utp.h, since the latter used 'bool' without defining it. The new snapshot defines it unconditionally in non-C++ code, so now we need to include it first.
2012-05-30 17:47:29 +00:00
Jordan Lee
f226d8a03f
(trunk libT) #4914 if a tracker has no scrape URL but the announce response contains any scrape fields, that's as close to a scrape as we're going to get, so use those fields.
2012-05-22 20:21:00 +00:00
Jordan Lee
1e07439cd0
(trunk libT) #4908 "Handle UDP scrapes when they don't follow the /announce idiom" -- fixed.
2012-05-20 14:47:18 +00:00
Jordan Lee
e9e76fa970
(trunk libT) #4888 : when scraping magnet links, don't send a left=0 argument to the tracker.
2012-05-20 14:14:59 +00:00
Jordan Lee
512cc1af73
silence an unused-variable compiler warning introduced in the previous commit
2012-05-17 22:22:30 +00:00
Jordan Lee
6948852013
(trunk libT) #4894 -- don't use evbuffer_add_printf() and evbuffer_pullup() together.
2012-05-17 17:40:31 +00:00
Jordan Lee
00919e932d
silence a compiler warning of implicitly casting the 3rd arg of initnatpmp() from a void* to an int
2012-04-07 00:12:57 +00:00
Mitchell Livingston
bbf274109a
#4825 update libnatpmp to libnatpmp-20110808
2012-03-21 02:51:26 +00:00
Jordan Lee
a025510834
(trunk libT) #4810 "add environment variable option to have libcurl verify SSL certs" -- patch by infinity0
2012-03-04 13:21:42 +00:00
Jordan Lee
ecfab318ed
(trunk libT) fix potential NULL pointer dereference in rpc-server.c's crude mime multipart parser
2012-02-15 01:44:21 +00:00
Jordan Lee
43f7dc4c17
(trunk libT) fix minor memory leak of the 'dir' string when deleting local data. (Thanks, valgrind!)
2012-02-04 03:09:31 +00:00
Jordan Lee
6d4858d8dd
(trunk) #4732 "allow switching between internal and system libnatpmp" -- fixed with patch scarabeus and applied by me, so any patch breakage is probably mine... ;)
2012-02-04 01:28:15 +00:00
Jordan Lee
c56b12690c
(trunk libT) #4687 "magnet links behave oddly" -- fixed. Thanks to cfpp2p for some very nice sleuthing on this one.
2012-02-04 00:34:39 +00:00
Jordan Lee
b2d65db45f
(trunk) remove trailing spaces from code lines ;)
2012-02-03 16:44:07 +00:00
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