Jordan Lee
23adb55d2e
(trunk libT) #4101 "RPC method blocklist-update is broken" -- use lower-level zlib API calls so that we can skip writing a temporary gzipped file to disk
2011-06-26 17:05:17 +00:00
Jordan Lee
b4ffdaac42
(trunk libT) #4277 "Checkmarks for leechers" -- possible fix.
...
It appears 2.30 and 2.31 might be making too many assumptions about which peers are seeds.
2011-06-25 19:29:25 +00:00
Jordan Lee
34642e7259
(trukn libT) lessen the importance of error messages returned by trackers in a multi-tracker torrent. It's all too often that people will load up a .torrent file with dozens of announce URLs, many of them dead...
2011-06-25 18:47:35 +00:00
Jordan Lee
42a49a6c70
(trunk libT) #4332 "countRange/countArray exception" -- fix bug in tr_cpMissingBytesInPiece()
2011-06-25 13:31:25 +00:00
Jordan Lee
35fb00fd9e
(trunk libt) #4315 "Transmission 2.31 crashes (segfaults) immediately after launch" -- remove the "max-open-files" code.
...
max-open-files might have been a nice configuration option once, but (1) we've never advertised it in the gui apps, and (2) the crazy cases are causing more trouble than this feature is worth. It's more complicated now after #4164 -- see #4294 , #4311 , and this ticket.
2011-06-24 22:39:20 +00:00
Jordan Lee
f5815a89bf
(trunk libT) minor code formatting
2011-06-24 19:30:25 +00:00
Jordan Lee
2d3fdc4235
(trunk libT) the edge condition bug in ptrarray's bsearch code seems to be fixed, so let's commit the fix with lots of assert()ions enabled so that the nightly build users can show me where I'm wrong :)
2011-06-24 18:25:56 +00:00
Jordan Lee
2362580e0e
(trunk libT) add a unique key to each tr_bandwidth object, so that when sorting them arbitrarily we can use that key rather than their pointer address. Apparently comparing pointers that aren't allocated in the same array is undefined behavior.
2011-06-19 18:34:10 +00:00
Jordan Lee
f134858453
(trunk libT) avoid thread issues on startup by ensuring that tr_sessionLoadTorrents() runs in the libtransmission thread.
2011-06-19 18:30:57 +00:00
Jordan Lee
bcf89fa9c3
(trunk libT) modify how the "stops" sorted container is used s.t. the container's uniqueness requirements are met.
2011-06-19 18:26:04 +00:00
Jordan Lee
437ebe32c7
(trunk libT) don't use tr_list for the tr_web_task queue
2011-06-19 18:18:48 +00:00
Mitchell Livingston
62f594267a
#4326 flags for completeness and wasRunning flipped in completeness callback
2011-06-19 03:31:41 +00:00
Mitchell Livingston
0a5d025568
add µTorrent Embedded to the client list
2011-06-16 12:08:52 +00:00
Jordan Lee
f6d68844bd
(trunk libT) #4101 "RPC method blocklist-update is broken" -- add debugging error messages for cases where gzopen/gzread fails
2011-06-10 05:34:16 +00:00
Jordan Lee
0aa163dfe9
(trunk libT) #4295 "'download-dir-free-space' contains garbage" -- fixed by bugmenot patch
2011-05-30 18:17:16 +00:00
Jordan Lee
3f6ffb90c2
(trunk libt) #4301 "strerror used instead of tr_strerror -- fix in peer-io.c too
2011-05-30 15:50:50 +00:00
Jordan Lee
7f2e4084dc
(trunk libT) fix webseed issue reported by Alex Hartl
2011-05-29 14:59:00 +00:00
Jordan Lee
d6e39e4d2f
(trunk libT) #4284 "crash via webfrontend or transmission-remote" -- use patch from jerwied
2011-05-27 23:28:40 +00:00
Jordan Lee
dcf814a481
(trunk libT) #4283 "Remove 'Prefetch failed' error message" -- done.
2011-05-27 23:26:05 +00:00
Jordan Lee
33eb6d3f9e
(trunk) #3817 remove OS proxy integration from the GTK+ client
2011-05-27 13:36:53 +00:00
Jordan Lee
eb53352d40
fix an r12447 typo -- SoMud's two-letter prefix is SM, not SO
2011-05-20 18:00:57 +00:00
Jordan Lee
c453175e0e
(trunk libT) recognize a few more peer apps by name: Arctic, BitBuddy, GSTorrent, Hekate, Meerkat, SoMud, SymTorrent, TuoTu, and XSwifter
2011-05-20 17:55:48 +00:00
Jordan Lee
52512857ae
(trunk libT) better r12434
2011-05-16 07:11:21 +00:00
Jordan Lee
7cd9cc0176
(trunk libT) #4237 "tarnsmission-remote -l shows torrent list in reverse order" -- revert r12424 to fix this
2011-05-16 02:09:31 +00:00
Jordan Lee
a4ab013568
(trunk libT) fix magnet link crash in peer-msgs.c's updateDesiredRequestCount() reported by quinx in the forums.
...
In some odd cases (such as if unchoked without having shown interest), the code could dividing a number by the torrent's block size without checking to see if the torrent had its metadata yet. This caused a division by zero because a magnet torrent's blocksize is unset until the metadata is downloaded.
2011-05-12 06:43:40 +00:00
Jordan Lee
ddaaa92c31
(trunk libT) make allocateBandwidth()'s "priority" field const.
2011-05-11 21:09:31 +00:00
Jordan Lee
d32c5b36c7
(trunk libT) minor CPU improvement to peer-mgr.c's bandwidthPulse()
...
We looped through all the torrents 3x to do three separate tasks... instead, loop only once and do the three tasks inside the single loop.
2011-05-10 14:41:59 +00:00
Jordan Lee
ffba6a16bd
(trunk libT) oops, r12424 included a second CPU improvement patch that I had in the pipeline. Fix a typo in that patch.
2011-05-10 05:18:40 +00:00
Jordan Lee
94cc3f87f7
(trunk libT) CPU improvement in torrent.c's torrentInit()
...
Add the new torrent to the session's torrent list by prepending it instead of appending it. That way we don't have to walk the list in order to add it. tr_session.torrentList is an unordered list, so there's no real difference between prepending and appending.
2011-05-10 04:46:44 +00:00
Jordan Lee
3aaeaddbaf
(trunk libT) CPU optimization in peer-mgr.c's rechokeDownloads()
...
Instead of recalculating interesting pieces for each peer we loop through, calculate them just once into a bitfield and then reuse that bitfield inside the loop.
2011-05-10 03:50:54 +00:00
Jordan Lee
0b11909854
(trunk libT) small CPU optimization in bitfield.c's countRange()
2011-05-10 03:43:06 +00:00
Jordan Lee
6a38a368d6
(trunk libT) CPU improvement in peer-mgr.c's getPeerCandidates()
...
getPeerCandiates() used to read through all the torrents to determine the global peer connections, and then again to determine the global peer candidates. Now this is done in one loop instead of two.
2011-05-10 01:51:12 +00:00
Jordan Lee
3c3fda5c66
(trunk libT) CPU optimization in tr_bandwidthClamp().
...
Don't call tr_time_msec() if it's not necessary. This was one of the top CPU sinks in profiling, so removing it is a nice improvement in cases when it's not necessary, such as when speed limiting is disabled.
2011-05-09 04:16:49 +00:00
Jordan Lee
c0e1cd8007
(trunk libT) torrent-get CPU optimization.
...
Move the tr_torrentStat() call outside of the addField() loop so that it's only called once instead of N times.
2011-05-09 04:13:14 +00:00
Jordan Lee
3269d99287
(trunk libT) experimental fix for the unterminated announce URLs reported by blacklion in the forums
2011-05-05 20:41:09 +00:00
Jordan Lee
45669fed08
(trunk libT) #4227 "invalid URLs aren't filtered out of .torrents' webseed lists"
...
If we can't parse a URL provided in the .torrent files' webseed list, that URL should be discarded.
2011-05-05 03:10:51 +00:00
Jordan Lee
f8f02fe7c3
(trunk libT) #2338 "Add uTP support" -- increase the block bandwidth to 3000 bytes in phase 1 as suggested by jch in comment:120.
...
The rationale is that by using 3000 bytes we'll send one full-size frame straight away, and leave enough buffered data for the next frame to go out in a timely manner.
2011-05-04 21:38:01 +00:00
Jordan Lee
f5a0276332
(trunk libT) the functions tr_peerMsgsSetChoke() and tr_peerMsgsSetInterested() have bool arguments whose types never got switched from "int" to "bool" when "bool" was adopted.
2011-05-01 19:10:34 +00:00
Jordan Lee
50ceaafeb8
(trunk libT) very minor copyediting: remove a little unwanted whitespace
2011-04-30 00:08:24 +00:00
Jordan Lee
841bfffff8
(trunk libT) simplify the code in peer-mgr.c's rechokeDownloads().
...
The new code has fewer calls to malloc/free and, more importantly, has less copy-and-pasted code to handle the different rechoke states.
2011-04-29 23:25:12 +00:00
Jordan Lee
92ad42e10c
(trunk libT) #4215 "bug in unchoking algorithm" -- fixed.
2011-04-29 22:39:54 +00:00
Jordan Lee
513a3fcc1d
(trunk libT) tr_torrentGetFileMTime(): if the file being looked at is aleady open in fdlimit's file cache, use that cached handle instead of deriving our own.
2011-04-28 18:40:46 +00:00
Jordan Lee
e514f93fd1
(trunk libT) in peer-mgr.c's refillUpkeep(), allocate the temporary array outside of the loop instead of inside...
2011-04-28 17:46:31 +00:00
Jordan Lee
1bddadf1c6
(trunk libT) #4212 "excessive UDP logfile entries in debug mode" -- fixed.
2011-04-28 02:51:07 +00:00
Jordan Lee
2ecca714f1
(trunk libT) heap pruning: use tr_bencToBuf() instead of tr_bencToStr() when building LTEP messages. This saves us from a handful of unnecessary malloc+memcpy+free calls in each instance where the change is made.
2011-04-27 21:38:45 +00:00
Jordan Lee
c061390f65
(trunk libT) heap pruning: using the same mechanism as in r12388, avoid an unnecessary malloc+memcpy+free in tr_bencToFile()
2011-04-27 21:33:52 +00:00
Jordan Lee
c9b54799e3
(trunk libT) tweak the ABI of tr_bencToBuf() to match the way it's being used
2011-04-27 21:22:08 +00:00
Jordan Lee
6e99c6cd69
(trunk libT) heap pruning: using the same mechanism as in r12388, avoid an unnecessary malloc+memcpy+free when building the URL for a webseed download request
2011-04-27 20:52:07 +00:00
Jordan Lee
aa41779aaa
(trunk libT) heap pruning: using the same mechanism as in r12388, avoid an unnecessary malloc+memcpy+free when TR_CURL_VERBOSE is logging HTTP messages
2011-04-27 20:50:43 +00:00
Jordan Lee
5681ea73e2
(trunk libT) heap pruning: avoid unnecessary malloc+memcpy+frees in announcer.
...
1. when creating announce URLs in announcer-http.c
2. when creating scrape URLs in announcer-http.c
3. when deep-logging what announces are in a torrent's queue in announcer.c
2011-04-27 20:41:47 +00:00