Commit Graph

836 Commits

Author SHA1 Message Date
Charles Kerr 80979e0240 a little code simplification -- remove unnecessary branches 2007-10-04 20:49:37 +00:00
Charles Kerr 0872b4f40a fix the crash reported by Waldorf and John_Clay 2007-10-04 20:31:19 +00:00
Charles Kerr 53aef0a48c Simplify the tracker/pause/close/recheck/start code. 2007-10-04 19:58:30 +00:00
Charles Kerr 0938cb88d4 dead code removal 2007-10-03 21:03:40 +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 0f550043fd fix peer-mgr.c:1092 asset failure reported by Waldorf_ 2007-10-03 02:46:15 +00:00
Charles Kerr 1f1605986c tear out some now-exterraneous code. 2007-10-02 20:55:14 +00:00
Charles Kerr f4988a3f6e tweak the peer manager code a little more. 2007-10-02 19:54: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 f4901211ca Fix erratic `(int)EVBUFFER_LENGTH( inbuf ) >= byteCount' error 2007-10-02 16:59:56 +00:00
Charles Kerr cdabb1c0b1 clean up the shutdown code a little bit. 2007-10-02 16:12:44 +00:00
Charles Kerr c271cec6a3 work around portability glitch in libevent's headers 2007-10-02 14:58:39 +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 77d7cf76a1 fix looong-standing potential dangling pointer bug reported by BMW 2007-10-02 03:33:17 +00:00
Charles Kerr 6ed2d25af7 threads. gotta love 'em. 2007-10-02 02:59:07 +00:00
Charles Kerr af686b3297 roll back a bug introduced in r3265 2007-10-02 02:01:57 +00:00
Charles Kerr 84ab0092fb some cleanup... remove some dead/obsolete code 2007-10-02 00:05:40 +00:00
Charles Kerr b84305cdf3 more agressive purging of connections that give socket errors 2007-10-01 18:09:59 +00:00
Charles Kerr 4ebe0b563a throttle back how many concurrent connections we make. 2007-10-01 17:51:07 +00:00
Charles Kerr f0562f5947 try to disconnect all the peers when the user hits `pause' 2007-10-01 16:50:51 +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 e4fec9eefd add tr_stat.peersKnown to indicate how many peers exist in the peer `pool' 2007-10-01 15:51:54 +00:00
Charles Kerr cba61802cf remove newly-unused field tr_peer_stat::isConnected 2007-10-01 15:41:42 +00:00
Charles Kerr 1a012b8b87 maybe fix the where-are-the-peers-coming-from bug reported by SoftwareElves, John_Clay, and jahpraiseherb 2007-10-01 15:36:31 +00:00
Charles Kerr 5c11c58113 simplify libT locks now that it's (more-or-less) single-threaded. fix deadlocks. make tr_locks nestable. 2007-10-01 15:17:15 +00:00
Charles Kerr f7e3f85e50 follow BT `best practices' more closely w.r.t. choosing which pieces to download 2007-10-01 14:24:22 +00:00
Charles Kerr 60a983d845 fix bizarre libevent contortion that made valgrind cry 2007-10-01 05:49:23 +00:00
Charles Kerr 9a3c91cad2 ensure TR_PEER_FROM_INCOMING peers get peer atoms. this should fix BentMyWookie's crash. 2007-10-01 05:32:34 +00:00
Charles Kerr 56738f065c fix some memory issues. 2007-10-01 04:12:24 +00:00
Mitchell Livingston 0888fe4f68 remove unneeded line 2007-10-01 03:28:49 +00:00
Charles Kerr b99084e638 more experimenting with how to get good peers 2007-10-01 03:24:52 +00:00
Mitchell Livingston a223b7d6ea fix Bitlet and add new Limewire client id's 2007-10-01 02:50:51 +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
Mitchell Livingston 3e87e07e0c add bitlet to client id's 2007-09-30 13:16:18 +00:00
Charles Kerr 4c990b2a7d fix tracker crash reported by bmw 2007-09-29 15:05:20 +00:00
Charles Kerr dad333ceec more work on the locks 2007-09-29 14:55:30 +00:00
Charles Kerr b3d6391413 test to see if the new locking code can fix the old `stop' bug 2007-09-29 14:25:52 +00:00
Charles Kerr 8a40a15b16 more work on the peer-mgr locks 2007-09-29 14:19:23 +00:00
Charles Kerr 64239a21e1 prevent a deadlock via the handshake code 2007-09-29 13:47:15 +00:00
Charles Kerr 0812087a4e add mutex locks for thread safety. 2007-09-29 06:37:03 +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 92923a0236 remove obsolete MAX_PEERS in internal.h 2007-09-28 16:00:43 +00:00
Charles Kerr d9af0ff829 add more assertion tests to try to hunt down the tracker.c bug reported by John_Clay 2007-09-28 15:05:42 +00:00
Charles Kerr f0c9f9a99a add a callback to notify clients when a torrent's state changes 2007-09-28 14:51:34 +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 2ae95a4096 fix win32 initialization bug reported by |ub0 2007-09-27 17:25:27 +00:00
Charles Kerr 1c1ef83a65 better support of the MSE protocol w.r.t. PadC and PadD 2007-09-27 14:43:33 +00:00
Charles Kerr d3077bbce1 round 2 of minor revisions to tr_stat 2007-09-27 03:30:22 +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 682be6b12e don't bother remembering peers that hang up on us.
don't bother remembering peers that are seeds when we're seeding.
2007-09-26 04:44:54 +00:00
Charles Kerr f20358927b lots of handshake fixes. incoming connections work now, both encrypted & plaintext. yay! 2007-09-26 03:52:30 +00:00
Charles Kerr b63a505c6d fix a handshake bug and reduce the idle cpu load a little. 2007-09-26 02:29:49 +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 c6fdad0514 accept erdgeist's suggestion of using ensureMinimumFileSize() only on WIN32 -- on posix, seek+write is enough. 2007-09-25 23:21:00 +00:00
Charles Kerr fef89a3bc7 * record the ports of incoming sockets. we might need them later if we want to disconnect and reconnect.
* for portability, use libevent API for some socket upkeep
2007-09-25 23:10:34 +00:00
Charles Kerr 904359a049 * fix oops from last checkin
* remove some unused fields from internal structures
2007-09-25 22:37:23 +00:00
Charles Kerr 73522af17c fix peer-msgs.c assertion failure. (tbo) 2007-09-25 22:30:41 +00:00
Charles Kerr 7a15abaf7a better handling of tracker error messages. 2007-09-25 18:39:58 +00:00
Charles Kerr dcfe4f9802 if we connect to a peer that understands the encryption handshake, try harder to continue the connection in encrypted mode. 2007-09-25 17:56:46 +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 dd8dc4d87e tweak the bitfield code to be a little faster. 2007-09-25 17:43:39 +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 7caf9550df shut up some more console messages 2007-09-24 19:12:52 +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 4834dc4b13 fix crash-on-shutdown 2007-09-23 19:24:06 +00:00
Charles Kerr b3fde0b43b tweak responsivenes on switching between `uploading' and `downloading' when a user changes a file's do-not-download state 2007-09-23 14:17:39 +00:00
Charles Kerr d27c9c5034 * update tor->activityDate whenever piece data is transferred. 2007-09-23 14:12:17 +00:00
Charles Kerr 89da2294b1 * when a torrent's done downloading, have it switch to seeding mode.
* tweak the gtk+ client's torrent inspector's display of transfer rates
2007-09-23 13:53:44 +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 d8d46517b9 fix a couple of encryption bugs. 2007-09-22 21:48:02 +00:00
Charles Kerr 3c73a86595 tweak some more. follow BentMyWookie's suggestion for raising the connection limits. 2007-09-22 14:42:15 +00:00
Charles Kerr a33a033b9b tweak the peer mgr 2007-09-22 14:32:02 +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 ea7513e59d undo commit that accidentally checked in testing code that only allowed connections from encrypted peers 2007-09-22 05:40:33 +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 f724cdd304 * abort connections if the peer selects an encryption option we didn't offer them.
* fix a shutdown crash as a result of peer-mgr timers not getting destroyed.
* remove some console messages.
2007-09-22 00:53:11 +00:00
Charles Kerr a903f07058 fix logic error in handshake that allowed unencrypted peers even when "ignore unencrypted peers" is checked 2007-09-22 00:36: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 4b46430731 give waldorf a different assertion to crash on. 2007-09-21 15:31:46 +00:00
Charles Kerr 980a7bda9a fix stat bug reported by BentMyWookie 2007-09-21 15:13:23 +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 9248143ce8 fix recursive crash when stopping a torrent, reported by plantain. silence a few more console messages. 2007-09-21 14:20:55 +00:00
Charles Kerr 54c84d0b30 silence a few more console messages 2007-09-21 13:52:42 +00:00
Charles Kerr 4d15bbdc2a slightly less broken handling of cases where we can't bind to our listening port. 2007-09-21 05:31:29 +00:00