Jordan Lee
d9a6539e19
fix pedantic compiler warnings
2013-09-09 01:32:09 +00:00
Jordan Lee
ea7d2482dd
introduce TR_PRIuSIZE macro for portable printf()ing of size_t. mikedld
2013-09-08 17:32:09 +00:00
Jordan Lee
98dd141449
correct function pointer type correctness. mikedld
2013-09-08 17:29:25 +00:00
Jordan Lee
605e2e89ad
use evutil_socket_t instead of int to define socket types. Patch my mikedLd :)
2013-09-08 17:03:11 +00:00
Jordan Lee
35638e210e
add inline wrapper functions to tr_torrent to decouple the rest of the code from tr_completion
2013-08-18 13:06:39 +00:00
Jordan Lee
de248c94fb
in peer-msgs.c's tr_peerMsgsCalculateActive(), adjust some of those new tracer assertions to work better with magnet links.
2013-07-09 17:05:32 +00:00
Jordan Lee
e0e4849abd
in peer-msgs.c's my_funcs struct, remove an unnecessary trailing comma in the designated initializers.
2013-07-08 16:44:19 +00:00
Jordan Lee
058e430251
fix bug #5372 , 'wrong peer states displayed'.
2013-07-08 16:41:12 +00:00
Jordan Lee
3fb74c4e00
(trunk, libT) fix tr_torrentStat() regression in the nightlies reported in #5294 by mw3demo
2013-05-27 21:04:48 +00:00
Jordan Lee
094af58f29
undo previous commit's accidental inclusion of changes to peer-msgs.* and peer-mgr.c
2013-05-22 19:06:54 +00:00
Jordan Lee
d81f956daa
(trunk, libT) #5356 'only set CURLOPT_COOKIEFILE if cookies.txt exists on startup' -- fixed.
2013-05-22 19:02:07 +00:00
Jordan Lee
96691dd019
(libT) make the class hierarchy between tr_peer, tr_peerMsgs, and tr_webseed a little less ad-hoc
2013-02-04 16:23:33 +00:00
Jordan Lee
5475e1507e
(libT) reduce the scope of REQUEST_BUF_SECS from peer-common.h to peer-msgs.c
2013-02-03 23:29:34 +00:00
Jordan Lee
f370a76c57
move tr_peer.encryptionPreference to tr_peermsgs.encryptionPreference
2013-02-03 22:45:32 +00:00
Jordan Lee
3cb7595b85
(libT) move the tr_peer declaration from peer-mgr.h to peer-common.h
2013-02-03 22:40:00 +00:00
Jordan Lee
553bd58681
(libT) peer-mgr doesn't care about non-piece data being transferred, so don't notify it when it happens
2013-01-30 18:00:03 +00:00
Jordan Lee
f75027d5e9
make all the log functions/structs/enums use a single 'tr_log' namespace, such as tr_logGetQueue, tr_logAddInfo, tr_logIsLevelActive
2013-01-25 23:34:20 +00:00
Jordan Lee
569b895cef
increase the per-peer prefetch count from 12 to 18. Add a symbolic constant for it.
2013-01-09 00:33:00 +00:00
Jordan Lee
c1559f3cc4
(trunk, libT) first drop of the tr_quark patch.
2012-12-22 20:35:19 +00:00
Jordan Lee
e96ed247fe
refactor libtransmission's tr_benc class as tr_variant.
2012-12-14 04:34:42 +00:00
Jordan Lee
079c78981c
(trunk) #5168 'make libtransmission's public funcs nonblocking when possible' -- first attempt.
2012-12-12 20:22:57 +00:00
Jordan Lee
a2d2a10226
(trunk, libT) #5165 : fix r13625 oops
2012-12-07 01:53:31 +00:00
Jordan Lee
3d38723ad9
Follow more common whitespace style conventions in the C code (libtransmission, daemon, utils, cli, gtk).
2012-12-05 17:29:46 +00:00
Jordan Lee
624c8ff1cc
(trunk, libt) #4932 'crash on magnet links' -- fixed.
2012-09-19 05:11:19 +00:00
Jordan Lee
357b160cde
remove trailing spaces
2012-09-07 04:25:04 +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
6948852013
(trunk libT) #4894 -- don't use evbuffer_add_printf() and evbuffer_pullup() together.
2012-05-17 17:40:31 +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
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
b14c44a3a6
(trunk libT) during the extended handshake, don't send the "m" dict if it doesn't have any entries.
2011-07-25 22:33:07 +00:00
Jordan Lee
bd6aaf9a12
(trunk libT) remove trailing spaces from a couple of lines of code
2011-07-17 18:11:34 +00:00
Jordan Lee
2317f08d38
(trunk libT) #4338 "improved webseed support" -- patch by alexat
2011-07-10 15:24:51 +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
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
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
ab698d2fa4
(trunk libT) more heap pruning: don't allocate peer-msgs' incoming block buffer until it's needed. If we're seeding, we won't need it.
2011-04-17 06:13:22 +00:00
Jordan Lee
294c2d7113
(trunk libT) heap and event pruning: don't create evtimers for periodic pex messages if the torrent doesn't allow pex (such as, if it's on a private tracker).
...
Previously, we unconditionally created the evtimer, and then checked each time to see if pex was allowed.
2011-04-17 05:55:46 +00:00
Jordan Lee
ac3ec2db39
(trunk libT) use alloca() for allocating the block array in updateBlockRequests()
2011-04-05 00:53:57 +00:00
Jordan Lee
40b2ad63d9
(trunk libT) avoid an unnecessary malloc() + free() call when we finish downloading a block.
...
Pre-libevent2, this free() was useful in helping keep the peer's incoming piece data buffer from growing too large because that could be a significant amount of wasted space given enough peers. However now that we're using the libevent2 code, that piece data buffer gets handed off to the block cache, so most of the time we're freeing an evbuffer that doesn't have any inernal chains allocated anyway.
2011-04-04 05:15:54 +00:00
Jordan Lee
525d854016
(trunk libT) when reading piece data in from a socket, avoid two unnecessary calls to memcpy()
2011-04-04 04:45:41 +00:00
Jordan Lee
0c2dce9da7
(trunk libT) remove dead logic branch detected by clang static analyzer
2011-03-31 04:33:49 +00:00
Jordan Lee
83c0e4f011
(trunk libT) break the mac build and introduce new crashes.
...
This is partially to address #4145 "Downloads stuck at 100%" by refactoring the bitset, bitfield, and tr_completion; however, the ripple effect is larger than usual so things may get worse in the short term before getting better.
livings124: to fix the mac build, remove bitset.[ch] from xcode
2011-03-28 16:31:05 +00:00
Jordan Lee
bd88521332
(trunk) yet more "#include" tweaks
2011-03-25 15:03:42 +00:00
Jordan Lee
1650a4730c
(trunk libT) copyediting: yes, removing more unnecessary #includes
2011-03-25 06:20:12 +00:00
Jordan Lee
1304aa0079
(trunk libT) still fiddling around with #includes -- this time removing unncecessary libT includes from libT .c files
2011-03-25 01:41:57 +00:00
Jordan Lee
324f0f470c
(trunk libT) copyediting: '#include "crypto.h"' cleanup
2011-03-25 01:21:31 +00:00
Jordan Lee
f7005889d1
(trunk libT) copyediting: clean up the "#include <event2/*>" directives in libtransmission's header files
2011-03-24 22:45:04 +00:00
Jordan Lee
949241a490
(trunk libT) tr_set_func is only used in one place, so make it a private function there instead of leaving it public in utils.h
2011-03-22 23:49:29 +00:00
Jordan Lee
14277760d7
(trunk libT) tr_set_compare() is only used in one place, so make it a private function there instead of leaving it public in utils.h
2011-03-22 23:42:25 +00:00
Jordan Lee
b4d36aeb54
(trunk) #4138 "use stdbool.h instead of tr_bool" -- done.
2011-03-22 15:19:54 +00:00
Jordan Lee
b4538e0625
(trunk libT) copyediting.
...
1. make some accidentally-public functions/variables private
2. comment out tr_generateAllowedSet() since we're not using it
3. argument list indentation
2011-03-07 14:33:45 +00:00
Jordan Lee
9bf2434e14
(trunk) copyediting: remove trailing spaces from source code lines in daemon/ gtk/ libtransmission/ and utils/
2011-03-04 23:26:10 +00:00
Jordan Lee
ab3cc08258
(trunk libT) #4078 "Better calculation of the bitfield length while still a magnet link" -- fixed.
2011-03-02 15:00:12 +00:00
Jordan Lee
9d95bd151d
(trunk libT) #4035 "In seed state, transmission disconnect from leechers" -- fixed.
2011-02-24 14:35:45 +00:00
Jordan Lee
f2b4a59eda
(trunk libT) #4051 "Use composition for the tr_history fields in tr_peer" -- fixed.
...
If we use composition on these objects we can save a handful of pointers per peer. This isn't a big deal, but it's an easy/safe change to do.
2011-02-23 06:01:16 +00:00
Jordan Lee
2b9db3c242
(trunk libT) #4048 "use bitsets instead of bitfield in tr_completion" -- done.
...
Excuse the sprawl. Much of this didn't fit into self-contained commits.
2011-02-23 03:54:04 +00:00
Juliusz Chroboczek
55b050f18e
Clear utp_failed flag upon seeing an announcement for ut_holepunch.
2011-02-18 00:43:39 +00:00
Juliusz Chroboczek
2ba3305412
When failing to connect over uTP, fall back to TCP.
2011-02-18 00:43:34 +00:00
Jordan Lee
004d30337b
when sending PEX messages, unset the holepunch flag because we don't support holepunch.
2011-02-18 00:41:32 +00:00
Jordan Lee
f00799f80c
if we successfully finish a handshake using uTP, mark the peer as supporting uTP
2011-02-18 00:41:06 +00:00
Juliusz Chroboczek
e35d1aacaf
Don't propagate information about ut_holepunch over PEX.
...
It's not useful, says Greg.
2011-02-18 00:36:31 +00:00
Juliusz Chroboczek
130006fcb1
Propagate uTP and ut_holepunch information over PEX.
2011-02-18 00:24:48 +00:00
Jordan Lee
4e60838434
(trunk libT) #3767 "rarest first policy" -- remove some debugging code.
...
My initial thinking was to let nightly users test this out, but it's not necessary.
2011-02-17 07:10:20 +00:00
Jordan Lee
5dffc2814d
(trunk libT) #3767 "rarest first policy" -- fixed.
...
This commit, started by a patch from athy, implements a rarest first policy when deciding which pieces to request from peers. It keeps a count of how many peers have each piece, and updates the count when getting bitfields, have, have all, and have none messages, as well as decrementing the counts when peers disconnect.
This running total is generated only for downloading torrents. Seeds don't have this overhead.
2011-02-17 05:14:53 +00:00
Jordan Lee
2f5fc4ade7
(trunk libT) #3959 "by default, disable prefetch for lightweight builds" -- fixed.
...
User jusid reports prefetch causes load on his NMT to jump from <1 to 3-4. He requests a way to disable prefetch, and suggests that prefetch be disabled by default on lightweight builds. This commit adds a new settings.json key, "prefetch-enabled", which defaults to "true" on standard builds and "false" when compiled with --enable-lightweight.
2011-01-31 23:35:10 +00:00
Jordan Lee
5b23aae320
(trunk libT) memory cache should use evbuffers to avoid unnecessary calls to memcpy -- done.
2011-01-29 18:56:53 +00:00
Jordan Lee
53f7fbb039
(trunk libT) #3927 "Use of libevent2 evbuffer_write on files..."
...
evbuffer_write() is intended for sockets. It works for files on Unix, but not on Windows, so we can't portably use it on files. Instead, use evbuffer_pullup() + write().
2011-01-22 13:33:05 +00:00
Jordan Lee
879a2afcbd
Update the copyright year in the source code comments.
...
The Berne Convention says that the copyright year is moot, so instead of adding another year to each file as in previous years, I've removed the year altogether from the source code comments in libtransmission, gtk, qt, utils, daemon, and cli.
Juliusz's copyright notice in tr-dht and Johannes' copyright notice in tr-lpd have been left alone; it didn't seem appropriate to modify them.
2011-01-19 13:48:47 +00:00
Jordan Lee
cc428376e9
(trunk libT) in deep logging, use evbuffer_write() instead of fwrite()
2011-01-06 02:33:39 +00:00
Charles Kerr
c011fe527b
(trunk libT) #3852 "Removing data from an active torrent doesn't stop activity" -- possible fix.
2010-12-27 21:34:12 +00:00
Charles Kerr
e5bb3205a1
(trunk) Join the 21st century and use only 1 space at the end sentences. This commit is nearly as important as the semi-annual ones that remove trailing spaces from the ends of lines of code... :)
2010-12-27 19:18:17 +00:00
Charles Kerr
ae84dc70dd
(trunk libT) #3836 "libevent2 support" -- finish moving to the libevent2 API mode. don't include the backwards-compatable API headers.
2010-12-24 08:58:41 +00:00
Charles Kerr
345b14adbc
(trunk) #3836 "libevent2 support" -- bump libevent2 requirement to 2.0.10. This will break the Mac build for a minute intil BMW applies his Mac patch
2010-12-20 02:07:51 +00:00
Charles Kerr
f4ee84069e
(trunk libT) fix typo in error message reported by Rolcol
2010-12-10 03:28:27 +00:00
Charles Kerr
43ed57b278
(trunk libT) #2955 "Lazy Verification (aka Just-in-Time Verification)" -- implemented.
2010-12-09 20:43:23 +00:00
Charles Kerr
c064ef3c79
(trunk libT) #3682 "reduce memory footprint caused by tr_history" -- done. Patch by Longinus00
2010-11-16 15:17:34 +00:00
Charles Kerr
01ab067e9c
(trunk libT) #3662 "libtransmission cpu optimization: fewer calls to tr_time_msec()" -- fixed.
2010-10-24 01:08:08 +00:00
Charles Kerr
47fac6bc97
(trunk libT) #3631 "crash in tr_ioFindFileLocation" -- possible fix
2010-10-14 19:43:18 +00:00
Charles Kerr
8d15c48a3f
(trunk libT) #3617 "1000+ warnings of 'inlining failed' in libtransmission when compiled with gcc 4.4.4" -- fixed.
2010-10-11 15:41:27 +00:00
Charles Kerr
6f5c9dcafb
(trunk libt) rename tr_date() as tr_time_msec() for clarity
2010-07-11 20:49:19 +00:00
Charles Kerr
841be713d1
(trunk libT) #3383 "When port forwarding, check to see if the public port matches the private port" -- fixed
2010-07-05 21:04:17 +00:00
Charles Kerr
cdcc4705aa
(trunk) #3045 "make libtransmission's API byte-oriented instead of KiB-oriented." -- implemented. This is a largish commit and will break the mac build for a little while.
2010-07-03 00:25:22 +00:00
Charles Kerr
db44d81b24
(trunk) #3256 "libtransmission/publish.[ch] should be replaced" -- apply publish.diff for 2.10
2010-06-19 14:33:10 +00:00
Charles Kerr
e70bebf930
(trunk) #1521 "memory cache to reduce disk IO" -- commit block-cache-rc1.diff to trunk for the nightlies.
2010-06-19 14:25:11 +00:00
Charles Kerr
bc71c7753b
(trunk libT) #3274 "When connecting with a DHT-enabled peer, we send our port message out-of-order" -- fixed in trunk for 2.00
2010-06-07 19:35:57 +00:00
Charles Kerr
b0b9e17032
(trunk libT) define MAX_BLOCK_SIZE once instead of in a handful of places
2010-05-26 15:23:21 +00:00
Charles Kerr
24129b9bf5
(trunk libT) #2551 : "when uploading to peers, prefetch local data from disk" -- commit jch patch #1 , to prefetch when a block is requested. I was surprised, but when measuring io time with and without this patch, it *is* an improvement...
2010-04-30 00:27:15 +00:00
Charles Kerr
25103d5198
(trunk libT) #3159 "better choosing of which peers to initiate new connections with" -- fix new bug in r10500 that was reported by Sharpshot in #3160
2010-04-21 04:44:35 +00:00
Charles Kerr
546bca723b
(trunk libT) #3159 "better decision-making when choosing which peers to initiate new connections with" -- experimental commit
2010-04-20 21:54:03 +00:00
Charles Kerr
1d8d9d8447
(trunk libT) code cleanup: after r10346, we don't need to keep the per-torrent cancel/block histories anymore
2010-03-10 15:55:00 +00:00
Charles Kerr
b850349479
(trunk) #2993 "'Downloaded' much greater than 'Have' or 'verified'" -- add new congestion-based throttle for 2.0
2010-03-08 04:29:58 +00:00
Charles Kerr
6b546e8b4b
(trunk libT) #1242 "don't accept duplicate blocks during endgame" -- fixed in trunk for 1.92
2010-03-07 17:38:34 +00:00
Charles Kerr
095cc3e05f
(trunk libT) "don't cancel requests for blocks that we're downloading from slow peers" -- fixed in trunk for 1.92
2010-03-06 14:56:15 +00:00
Charles Kerr
fad8f285a8
(trunk libT) use jch's suggestion of having a per-session page-aligned memory buffer for general reuse. ( http://trac.transmissionbt.com/ticket/2551#comment:5 )
2010-02-23 07:20:57 +00:00
Charles Kerr
e31b9d8fc5
(trunk libT) #2903 "Don't send DHT port messages to peers if we didn't advertise support for DHT in the handshake" -- fixed in trunk for 1.90
2010-02-14 19:35:09 +00:00
Charles Kerr
d1b282b647
(trunk libT) remove dead code.
2010-02-08 13:59:13 +00:00
Charles Kerr
8fc6e6a0f5
(trunk libT) #2656 "download speed limit of 0 is not honored" -- fixed in trunk for 1.90
2010-01-30 00:43:31 +00:00
Charles Kerr
6e8cc99374
(trunk libT) #2800 "crashing during operation" -- if a peer sends an out-of-bounds "have piece" message, drop the connection
2010-01-26 20:38:04 +00:00
Charles Kerr
3ace0afaae
(trunk libT) #2792 "since 1.80 update downloads failing" -- try to handle non-resolving tracker addresses without blocking in curl
2010-01-26 07:22:50 +00:00
Charles Kerr
38fdcd5835
(trunk libT) (1) on startup, stagger new torrents' scrapes. (2) reduce the minimum number of block requests to peers.
2010-01-25 02:19:20 +00:00