Commit Graph

211 Commits

Author SHA1 Message Date
Charles Kerr 35f73c097c lazy "allowed set" generation. add regression test for "allowed set" generation. 2008-01-06 21:56:30 +00:00
Charles Kerr 6c3eab0a92 #585: 1.00 could be sped up by elminating reconnect intervals for some peers 2008-01-05 18:17:56 +00:00
Charles Kerr 085235b10b remove some unused #include <ctype.h> directives 2008-01-03 20:17:01 +00:00
Charles Kerr ee2cffa196 #579: assertion failure in ~r4410 2008-01-03 03:45:10 +00:00
Charles Kerr c6d2e60f52 fix comment typo reported by BigBossman 2007-12-27 22:50:20 +00:00
Charles Kerr e870440025 add a per-block request TTL of 120 seconds 2007-12-25 17:22:51 +00:00
Charles Kerr 473907d891 a little housekeeping: move tr_torrent stuff into its own header 2007-12-25 05:37:32 +00:00
Charles Kerr 401cfbdb6b replace the per-torrent PEX setting with a global one, as per discussion with SoftwareElves and BentMyWookie 2007-12-24 05:03:40 +00:00
Charles Kerr 4ff5b472a8 raise the maximum connection limit a bit. 2007-12-15 16:36:43 +00:00
Charles Kerr 39d8c74fcd small tweak to play nice with old C compilers. Thanks to fizz for reporting & submitting a patch 2007-12-03 19:52:55 +00:00
Charles Kerr abef433926 improve upload speeds when the speed limits are uncapped. 2007-12-01 23:08:34 +00:00
Charles Kerr 1e4b3a0577 make the peer stats a little easier to understand 2007-11-27 21:39:41 +00:00
Charles Kerr e354b82452 disable SWIFT on private trackers, because they are typically ratio-based sites where you *want* to upload as much as possible to deadbeats 2007-11-26 04:05:12 +00:00
Charles Kerr 8caa113d4b fix LTEP PEX error reported by Adrian Ulrich in the BitTorrent mailing list 2007-11-22 06:48:08 +00:00
Charles Kerr 91e672d428 some progress on the overall statistics, though probably not visible to end users yet 2007-11-21 20:03:53 +00:00
Charles Kerr 9f9901b3fa tweak the peer limits a bit for faster uploading 2007-11-20 17:29:56 +00:00
Charles Kerr 9cec81b524 fix the crash reported by pea_, Gimp, and John_Clay [ref: http://pastebin.ca/784834] 2007-11-19 21:44:38 +00:00
Charles Kerr 3704854654 add more asserts up the call chain to find the source of pea_ and Gimp's bug 2007-11-19 04:51:06 +00:00
Charles Kerr a277382578 more download speed tweaks for situations where T is both uploading and downloading. 2007-11-18 04:24:17 +00:00
Charles Kerr e371009606 this should improve download speeds. test it! 2007-11-18 03:18:26 +00:00
Charles Kerr 9a81cd7637 reintroduce the "SWIFT" algorithm 2007-11-18 01:00:49 +00:00
Charles Kerr 37969406b2 Add "Status" column to tr_peer_stat. 2007-11-17 23:43:33 +00:00
Charles Kerr 54a2bb978b fix timeout error that caused us to drop connections prematurely 2007-11-17 17:49:30 +00:00
Charles Kerr ef3d0df0d9 try to tickle some more information out of John_Clay's bug report 2007-11-17 07:48:51 +00:00
Charles Kerr 77d58126f4 remove yet more dead code 2007-11-17 02:47:47 +00:00
Charles Kerr cc728b0470 progress on the "speed limits kill my transfer rate" bug. 2007-11-16 21:58:11 +00:00
Charles Kerr 0ac302b302 progress on the "speed limits kill my transfer rate" bug. 2007-11-16 20:40:03 +00:00
Charles Kerr 73680b6263 fix tr_peerMsgsAddRequest memory leak reported by tiennou 2007-11-16 15:45:26 +00:00
Charles Kerr 1ebaf597a4 fix trunk memory leak reported by tiennou 2007-11-16 15:33:57 +00:00
Charles Kerr c3dce15a9e if we haven't advertised that we support pex, then even if a peer sends us a pex message, don't send one back. 2007-11-16 04:42:51 +00:00
Charles Kerr 257eaee631 more of the same 2007-11-15 05:47:23 +00:00
Charles Kerr a9e5fff2e6 * fix the `req->length == (uint32_t)( ((block)==((msgs->torrent)->blockCount-1))' bug.
* there seems to be a pattern for peers that were (intentionally?) giving incomplete data to trigger the bug above.  when a peer does this, give them a strike on its three-strikes-and-you're-banned count
2007-11-13 05:36:43 +00:00
Charles Kerr 8516860fec fix a bug in tr_stat's availability numbers, reported by BentMyWookie 2007-11-11 16:33:04 +00:00
Charles Kerr c32f893038 commit tiennou's fast-peers-final patch from ticket 149 2007-11-10 16:06:00 +00:00
Charles Kerr ca03b62a58 * fix a bug that could corrupt peer connections, causing slower speeds and/or fewer connections
* add more assertions to smoke out any remaining BT protocol bugs
2007-11-10 04:56:27 +00:00
Charles Kerr fd430fde90 undoing the r3773-r3774 experiment. 2007-11-09 20:07:52 +00:00
Charles Kerr 67b719c2de on Darwin, use NSCParameterAssert() instead of assert(). 2007-11-09 19:50:40 +00:00
Charles Kerr 99ea26c1c9 * try to get peers to scale up to speed faster.
* remove unnecessary steps when receiving block data from peers.
2007-11-09 01:22:15 +00:00
Charles Kerr 39f9f14751 minor tweaks. 2007-11-08 21:25:17 +00:00
Charles Kerr 71f4efcbad update our #includes now that libevent has cleaned up event.h 2007-11-07 18:26:19 +00:00
Charles Kerr 60aab6c433 remove libtransmission code that duplicates functionality in libevent 2007-11-06 21:14:30 +00:00
Charles Kerr 0f92cb7f30 fix bug reported in the forums by "grabman" 2007-11-05 03:09:27 +00:00
Charles Kerr 3e0e462b10 finish cleaning up the code that was churned during the "corruption" fix. 2007-11-01 13:47:32 +00:00
Charles Kerr a6206b036c "corruption" fix part 2: lots of assertions, and try to complete pieces & ban bad peers sooner 2007-10-31 04:23:51 +00:00
Charles Kerr ab8ed6507d #412 - 0.90 "ignores" speed limits (deanr, berkut, SineOtter) 2007-10-28 15:20:24 +00:00
Charles Kerr 92ac49d9c4 compatability with older C copmilers (ticket #422, patch by fizz) 2007-10-27 21:29:41 +00:00
Charles Kerr b00ee3e568 Ticket #398 (peer-msgs.c:905: failed assertion `msglen == 0' in 0.90) 2007-10-27 15:45:03 +00:00
Charles Kerr 8c0e2434f5 fix OpenBSD build error. 2007-10-25 13:59:46 +00:00
Charles Kerr b704654275 dead code removal. 2007-10-22 23:27:47 +00:00
Charles Kerr a5946e396c tweak the logging a bit. 2007-10-22 18:52:36 +00:00
Charles Kerr e1fbd16941 fix some memory leaks reported by valgrind. 2007-10-22 14:15:16 +00:00
Charles Kerr 6527f4e12a dead code removal. 2007-10-20 15:17:36 +00:00
Charles Kerr 25fa56d294 * don't fire the "status changed" event if the status changes while a torrent's being started for the first time.
* cleaner setting of the DND flags in the gtk+ client.
* cpStatus cleanup.
2007-10-19 23:23:21 +00:00
Charles Kerr 911ff1cdd1 remove tr_peerMsgsSetChoke()'s return value, which was always ignored anyway 2007-10-17 18:23:59 +00:00
Charles Kerr 6eb7edf007 fix choke fibrillation bug in new connections 2007-10-15 16:01:42 +00:00
Charles Kerr 57eaa27970 Fix bug that could initiate pex in private torrents. 2007-10-14 17:21:24 +00:00
Charles Kerr d96ed80aa2 (1) fix a bug in torrent creation. (2) fix a bug in torrent paths on startup in gtk 2007-10-14 03:26:13 +00:00
Charles Kerr 4f33a8da42 Try sharing a DH so that we don't spend so many cpu cycles making new ones when we're working through the peers trying to find good ones. 2007-10-13 23:15:43 +00:00
Charles Kerr 9211c57ad2 merge in the parts of peerutils' peer pruning code that still make sense 2007-10-13 13:54:05 +00:00
Charles Kerr 89564dc3c2 fix the "swarm speed" bug reported by Gimp_ 2007-10-11 04:17:28 +00:00
Charles Kerr 3b2ef1054f 8 second timeout during handshake, 2.5 minute handshake afterwards 2007-10-11 03:54:33 +00:00
Charles Kerr e11999243e add more debugging messages to track down why we're disconnecting from some peers 2007-10-11 03:36:09 +00:00
Charles Kerr cbaf1b8faa commit more of tiennou's fastpeers patch 2007-10-10 16:39:12 +00:00
Charles Kerr 696800f369 * fix bug that sent a keepalive message too often 2007-10-10 03:03:09 +00:00
Charles Kerr e8d19c5b03 fix stupid bug from yesterday that made uploading difficult. 2007-10-09 05:51:20 +00:00
Charles Kerr e176a25922 * fix a bug with uploading encrypted pice data to another peer
* extra sanity tests when uploading data
2007-10-08 16:10:10 +00:00
Charles Kerr 1014e633ac * don't reuse http connections to trackers. I think this is what caused most of the `no response from tracker X' messages.
* extra safety checks to ensure the last `stopped' message to the tracker is sent on shutdown.
2007-10-07 16:07:19 +00:00
Charles Kerr c75f49bc26 * add a per-peer request queue to hold the next 10-15 seconds' worth of requests so that we always have more requests at hand when the current requests start to run low.
* increase the tracker `numwant' variable to grow our peer pool
* bugfixes in cancelling requests.
* make the debug log sexy and readable like uTorrent's ;)
2007-10-06 18:20:52 +00:00
Charles Kerr b6483cbf3f don't allow duplicate requests to the same peer, even during endgame. (alus) 2007-10-05 00:16:47 +00:00
Charles Kerr 5f2bd1d950 speed improvements... this is getting me 700 KiB/s (which is near to my speed cap) in the ubuntu torrent test 2007-10-03 19:00:51 +00:00
Charles Kerr 877e2bb86e some more peer tweaks 2007-10-03 18:19:51 +00:00
Charles Kerr a3d1a254d1 minor source code cleanup... 2007-10-03 16:42:43 +00:00
Charles Kerr 3d2e3cfdfb add pass subscription info into the peer-msgs constructor so that we can start getting information immediately 2007-10-03 04:04:34 +00:00
Charles Kerr 1f1605986c tear out some now-exterraneous code. 2007-10-02 20:55:14 +00:00
Charles Kerr 3dbaa7d673 make the peer manager a little greedier w.r.t. keeping connections alive. 2007-10-02 19:25:18 +00:00
Charles Kerr f237bf7047 * simplify the the choking intervals
* fix peer-mgr destructor bug
* send debugging messagese to TR_DEBUG_FD instead of the console
2007-10-02 14:35:02 +00:00
Charles Kerr 84ab0092fb some cleanup... remove some dead/obsolete code 2007-10-02 00:05:40 +00:00
Charles Kerr 75ff12faba don't log BT protocol messages in UL/DL speed -- only log piece data transfers. 2007-10-01 16:31:17 +00:00
Charles Kerr 6bef7def52 tweaks 2007-10-01 00:08:12 +00:00
Charles Kerr 7cc6771318 experimental better peer management. 2007-09-30 23:55:49 +00:00
Charles Kerr dad333ceec more work on the locks 2007-09-29 14:55:30 +00:00
Charles Kerr 04f6847004 take out the `thawing out' console messages 2007-09-29 00:47:33 +00:00
Charles Kerr 3f1d888354 improved uTorrent handshaking, after talking to #utorrent-dev about minutae... 2007-09-29 00:46:41 +00:00
Charles Kerr 79973a8a93 commit the next step of tiennou's fastpeers code. 2007-09-28 16:40:21 +00:00
Charles Kerr 198d2c256e fix John_Clay's tracker assertion failure. 2007-09-28 16:14:19 +00:00
Charles Kerr c28a94d04c fix a couple of memory corruption errors while trying to track down tiennou's report on peer-msgs.c:pulse() -> inout.c:163 assertion failure. 2007-09-28 14:27:56 +00:00
Charles Kerr 439c1f38c1 some experimental code. (1) try to improve throughput to peers. (2) add first draft of new tr_stat fields requested by BentMyWookie (3) raise the per-torrent peer limit to 100 to match LibTorrent's defaults 2007-09-27 03:03:38 +00:00
Charles Kerr d386617da2 only send a peer keepalive messages when we're not sending them anything else 2007-09-26 17:34:33 +00:00
Charles Kerr 773fa8f1f6 for every connected peer, send a keepalive message every 90 seconds 2007-09-26 15:14:37 +00:00
Charles Kerr 7ccab9de2c peer i/o cleanup 2007-09-26 14:42:03 +00:00
Charles Kerr ee6a0b8945 modify the tr_stat struct as hashed out by charles_ and BentMyWookie. sync gtk, ipc, and wx clients. 2007-09-26 01:55:04 +00:00
Charles Kerr 73522af17c fix peer-msgs.c assertion failure. (tbo) 2007-09-25 22:30:41 +00:00
Charles Kerr 5aecf680f0 when a peer tells us that it's switched listening ports, remember the new port for the next time we connect. 2007-09-25 17:44:50 +00:00
Charles Kerr 1d1a23508b * follow the BT spec more closely by disallowing peers to request blocks of more than 16KiB from us.
* don't register the choke and connection timers for torrents that aren't running.  It doesn't hurt anything but does waste a few cycles.
2007-09-25 00:04:29 +00:00
Charles Kerr 6c8d9d42d3 fixed tracker bug reported by TooMuchTime of OiNK fame 2007-09-24 20:27:20 +00:00
Charles Kerr dd6f87a5eb fix race condition in the torrent rechecker. 2007-09-24 17:47:15 +00:00
Charles Kerr 6897fe4327 plug some minor memory leaks. (valgrind) 2007-09-24 15:50:59 +00:00
Charles Kerr b402687c93 * add sanity checks to incoming piece data requests. This may solve the inout.c:99 assertion failure.
* rename the gtk client from `transmission-gtk' to `transmission' for parity with the mac client.
2007-09-23 23:38:39 +00:00
Charles Kerr d27c9c5034 * update tor->activityDate whenever piece data is transferred. 2007-09-23 14:12:17 +00:00
Charles Kerr 968868debe fix bug that tended to disconnect from valid peers when we were seeding. also, follow the BT spec's terminology a little closer. 2007-09-23 02:19:59 +00:00
Charles Kerr 7a54e88d4e fix bug #342 -- some hash checks were incorrectly failing, which caused the `bytes downloaded' field to appear to jump back and forth 2007-09-23 02:11:53 +00:00
Charles Kerr 10b8326f1d add a peer connection manager s.t. have a consistent way of disconnecting from bad peers, connecting to new potential peers, disconnecting from seeds when we're seeding, etc. 2007-09-22 14:18:52 +00:00
Charles Kerr c6aa57f306 make download speed limits work? 2007-09-22 05:16:32 +00:00
Charles Kerr 87f53cba5b maybe get speed limits working. 2007-09-22 04:44:50 +00:00
Charles Kerr ebc612d725 get encrypted uTorrent working. 2007-09-22 03:37:37 +00:00
Charles Kerr 56b0e5d1ac * remove some console messages.
* scrape sooner when peers are added.
* added stub code for the connection manager code
2007-09-22 00:22:10 +00:00
Charles Kerr e9ed5e28d9 * accept tiennou's partial patch for `fast peers' extension
* fix growl problem I introduced in the last checkin, reported by chrissturm
2007-09-21 14:50:29 +00:00
Charles Kerr 6479ecbcf6 fix crash reported by Gimp_, John_Clay, and persept_ 2007-09-21 04:41:44 +00:00
Charles Kerr 28bcf6204b clamp down on the flood of debug messages. 2007-09-20 23:33:46 +00:00
Charles Kerr 379beed969 if we're seeding, disconnect from other seeds (part 1 of 2) 2007-09-20 23:07:36 +00:00
Mitchell Livingston 76da1185ca merge encryption branch to trunk (xcode project is still out of date) 2007-09-20 16:32:01 +00:00