Commit Graph

172 Commits

Author SHA1 Message Date
Matt Joiner 541f11aed4 Ensure the parallel dial invariant 2014-11-17 18:04:33 -06:00
Matt Joiner 8cae78cbf1 Reduce dial timeouts when there are lots of peers in the backlog 2014-11-17 18:04:09 -06:00
Matt Joiner 6d05994c2c dht: Include the sender of peers in the peer stream 2014-11-17 17:47:36 -06:00
Matt Joiner 727aac204f Expvar successful and unsuccessful dials 2014-11-17 01:44:06 -06:00
Matt Joiner 8d96195b0c Connect to peers using both UTP and TCP; Share UTP port with DHT 2014-11-16 23:27:01 -06:00
Matt Joiner ad7cf646c8 Open new connections when a connection is dropped 2014-11-16 21:37:34 -06:00
Matt Joiner 34a47a100e Add util AddrIP and AddrPort functions 2014-11-16 21:20:49 -06:00
Matt Joiner 77e064a0f5 Allow the client ID to be set in the config 2014-11-16 13:54:43 -06:00
Matt Joiner c1721b61ef Prevent clients from connecting to other clients with the same ID 2014-11-16 13:54:00 -06:00
Matt Joiner 3489a60154 Fix broken commit 2014-11-16 13:51:59 -06:00
Matt Joiner 4fead22cd2 Use more generic net error type to detect timeouts 2014-11-16 13:31:11 -06:00
Matt Joiner e37d369864 Move half-open tracking into per-torrent 2014-11-16 13:30:44 -06:00
Matt Joiner 963918ac90 Add UTP support, disable TCP for now. DHT moves to another port 2014-11-16 13:29:31 -06:00
Matt Joiner eeae2d3285 Actually announce to DHT, don't just get peers 2014-11-16 13:18:08 -06:00
Matt Joiner 86de81fba8 Tidy up address handling 2014-11-16 13:16:26 -06:00
Matt Joiner ecf2639856 Add magnet-metainfo, tool to download magnet to torrent file 2014-09-25 18:05:52 +10:00
Matt Joiner 6942eed15f Lazily hash pieces where possible 2014-09-15 03:25:53 +10:00
Matt Joiner 7eaef48f9e Fix crash when piece hash completes for dropped torrent 2014-09-14 04:07:05 +10:00
Matt Joiner 1cfd6ecdcb Improvements arising from attempting to delay piece hashing until necessary 2014-09-14 04:03:23 +10:00
Matt Joiner 979192cbfd Treat PORT messages with port of 0 to mean on the remote port 2014-09-14 03:59:31 +10:00
Matt Joiner bea5c1a502 Missed this dataRead call in an earlier commit 2014-09-14 03:58:13 +10:00
Matt Joiner dc2b622be1 Track failed piece hashes 2014-09-14 03:57:51 +10:00
Matt Joiner 97ae59dfaf Improve the data waiter system 2014-09-14 03:50:15 +10:00
Matt Joiner 4bcfdc8fc9 Suppress metadata extension message errors from Xunlei client 2014-09-14 03:47:47 +10:00
Matt Joiner f2bb5b1c56 Increase peer connection buffer size from default (4096) to 20KiB
This reduces syscall overhead which becoming noticeable.
2014-09-14 03:47:06 +10:00
Matt Joiner 7fccb77ebe Treat ECONNRESET and i/o timeout from peers as EOF 2014-09-14 03:45:38 +10:00
Matt Joiner c0d7b2fbf2 Rename and improve downloaded chunk counters and status per connection 2014-09-11 20:30:13 +10:00
Matt Joiner 2b360b641c Don't log extension message parsing errors from -SD0100- 2014-09-11 14:20:47 +10:00
Matt Joiner 689fe85134 Disable TCP linger for peer connections 2014-08-28 10:06:57 +10:00
Matt Joiner ed08bd2837 Introduce socket/torrent limits, work in progress 2014-08-28 10:06:36 +10:00
Matt Joiner d5a2bc67f7 Misc tweaks 2014-08-28 10:05:41 +10:00
Matt Joiner e09e21fab2 Fixes to closing torrents and connections 2014-08-28 10:04:44 +10:00
Matt Joiner 7e19c9c12b Forgot to commit duplicateConnsAvoided expvar 2014-08-28 09:45:58 +10:00
Matt Joiner e79f1bcbf7 Keep track of ongoing handshakes and add timeouts to connection sockets 2014-08-28 09:45:20 +10:00
Matt Joiner c33b889b5e Cease networking on a torrent if it's finished and we're not going to seed 2014-08-28 09:39:27 +10:00
Matt Joiner 2765ad04ca Avoid connecting to the same peer twice by address 2014-08-28 09:35:13 +10:00
Matt Joiner aeee372506 Add useful new metrics to connection 2014-08-28 09:32:49 +10:00
Matt Joiner 035edbaf85 Rename connection.closed->closing 2014-08-28 09:31:05 +10:00
Matt Joiner 2d9c22ae1e Misc trivial improvements 2014-08-25 22:14:10 +10:00
Matt Joiner 891745360e Add a date to the metadata packet client version string 2014-08-25 22:12:50 +10:00
Matt Joiner c9bc892789 Implement the DHT Port message 2014-08-25 22:12:16 +10:00
Matt Joiner 6aa459dc0d Stop announcing on DHT if a torrent is removed 2014-08-25 06:01:05 +10:00
Matt Joiner 78ed2c74d0 Make NoUpload a client configuration option and use it for torrentfs 2014-08-25 06:00:29 +10:00
Matt Joiner c8f335182f Improve incomplete piece ordering, responsive download strategy 2014-08-25 05:31:34 +10:00
Matt Joiner 8f89d7a07e Use CopyExact when extracting handshake read 2014-08-25 05:25:52 +10:00
Matt Joiner 0b01c597c0 Let client.DataWaiter have its own mutex 2014-08-25 05:24:18 +10:00
Matt Joiner 8db966cd42 Make use of levelmu to prioritize client.TorrentReadAt 2014-08-25 05:23:28 +10:00
Matt Joiner 8f065e473f Add some checks to TorrentReadAt for 0 byte reads 2014-08-24 06:54:14 +10:00
Matt Joiner b72b05f495 Count posted cancels 2014-08-24 03:10:47 +10:00
Matt Joiner 2b079e4a9d Got a nice working algorithm for responsive download strategy 2014-08-24 03:08:11 +10:00