Commit Graph

2615 Commits

Author SHA1 Message Date
Matt Joiner 17acbb485c Fix crash when peer has only sent lower-index HAVE messages 2014-07-01 00:06:58 +10:00
Matt Joiner 0f53e89e7b Improve some log messages 2014-07-01 00:05:28 +10:00
Matt Joiner 23cfe49ea4 Record if a connection was incoming 2014-07-01 00:04:28 +10:00
Matt Joiner 147ad31135 A CPU optimization to FillRequests when we know no more can be added 2014-07-01 00:03:07 +10:00
Matt Joiner b969b17092 Disable request heat assertion for now
Probably want a flag to do intensive checks like this
2014-06-30 00:22:36 +10:00
Matt Joiner eb070383b1 Move download strategies into their own file 2014-06-30 00:22:05 +10:00
Matt Joiner 51431c7cfc Some minor tweaks 2014-06-29 19:10:59 +10:00
Matt Joiner f3bd288dd6 Fix crash writing torrent status before priorities are initialized 2014-06-29 19:08:46 +10:00
Matt Joiner b87bb74f31 Fix a race where the last piece of a torrent is requested before it's been hashed 2014-06-29 19:08:16 +10:00
Matt Joiner 3b29043861 Add peers sent over PEX 2014-06-29 19:07:43 +10:00
Matt Joiner aec5074f3d Add support for extended handshake "v", "reqq", and "p" fields 2014-06-29 18:57:49 +10:00
Matt Joiner 5e7fe0383b Fix crash printing client status when a torrent info isn't available 2014-06-29 18:56:19 +10:00
Matt Joiner 434c954319 Log errors setting the metadata for a torrent, and report when metadata is completed from peers 2014-06-29 15:45:21 +10:00
Matt Joiner 87100587f8 Remove some metadata related debug messages 2014-06-29 15:44:55 +10:00
Matt Joiner a44d2d88c3 Rename torrent package to metainfo; expose MetaInfo["info"] so it can be used on its own
--HG--
rename : torrent/README => metainfo/README
rename : torrent/_testdata/archlinux-2011.08.19-netinstall-i686.iso.torrent => metainfo/_testdata/archlinux-2011.08.19-netinstall-i686.iso.torrent
rename : torrent/_testdata/continuum.torrent => metainfo/_testdata/continuum.torrent
rename : torrent/builder.go => metainfo/builder.go
rename : torrent/metainfo.go => metainfo/metainfo.go
rename : torrent/metainfo_test.go => metainfo/metainfo_test.go
2014-06-28 19:40:39 +10:00
Matt Joiner c96293a111 Can now download from magnet links 2014-06-28 19:38:31 +10:00
Matt Joiner 9d53e19547 Fixes for cmd/torrent with the new torrent.Info field 2014-06-27 18:57:35 +10:00
Matt Joiner 49e71f9654 Begin adding magnet and ut_metadata support 2014-06-27 00:57:07 +10:00
Matt Joiner 33d53cf9e5 Trivial fix for one of the last commits 2014-06-26 18:08:14 +10:00
Matt Joiner 7c532969d3 Various improvements that've had a lot of testing 2014-06-26 18:06:33 +10:00
Matt Joiner b53e019a6f Fix broken connection write optimizer test 2014-06-26 17:30:54 +10:00
Matt Joiner de769cdce7 vet some printfs 2014-06-26 17:30:16 +10:00
Matt Joiner cf31465904 torrentfs: Write client status to HTTP port 2014-06-26 17:29:12 +10:00
Matt Joiner 809aabe531 cmd/torrentfs: Expose readahead bytes as a flag 2014-06-26 01:37:00 +10:00
Matt Joiner c509f0b1ea torrentfs: Reading an offset past the end of a file caused out of bounds panic 2014-06-26 01:36:25 +10:00
Matt Joiner e7cb8a138b Begin implementing a K closest node algorithm 2014-06-24 23:20:49 +10:00
Matt Joiner 75e34be89d Some function doc 2014-06-24 23:20:07 +10:00
Matt Joiner f3af9bd5bc Wrap server UDP sends to ensure the node last send is updated 2014-06-24 23:19:19 +10:00
Matt Joiner 1852e5805d DHT default server ID generated using hostname and server address 2014-06-24 23:18:30 +10:00
Matt Joiner ef8e2fcf16 DHT node table should be loaded after the server is initialized 2014-06-24 23:17:06 +10:00
Matt Joiner f45d397e41 udp_tracker: If a read deadline occurs, writes were failing with i/o timeout 2014-06-23 20:30:31 +10:00
Matt Joiner 9b6e3f25cd Reorder actions after a chunk is received 2014-05-29 02:44:27 +10:00
Matt Joiner 26116a7df8 Shuffle chunk spec request order for readahead pieces
Should reduce overlap in received chunks.
2014-05-29 01:32:34 +10:00
Matt Joiner 110aa733a4 Make the readahead on ResponsiveDownloadStrategy customizable 2014-05-29 01:30:59 +10:00
Matt Joiner cfc282ff51 Remove requests from the outbound message queue if cancelled before they're written
Only post peer protocol messages to the channel, bytes must be done directly.
This fixes a possible issue where slow responses during handshake could cause
keep alive messages to be sent prematurely.
2014-05-29 01:27:48 +10:00
Matt Joiner ef69e82765 Keepalives weren't marshalled correctly 2014-05-29 01:22:51 +10:00
Matt Joiner 83a02420a5 Got dht-server working nicely 2014-05-27 16:28:56 +10:00
Matt Joiner 92b77a7cae dht-server: Save and load node table between invocations 2014-05-25 23:04:55 +10:00
Matt Joiner 1b69e69461 Switch dht-server to bootstrapping 2014-05-25 21:34:29 +10:00
Matt Joiner 7c3d919cfb Begin implementing DHT 2014-05-24 16:51:56 +10:00
Matt Joiner 1390831dc3 Add README.rst with codeship image 2014-05-24 00:23:44 +10:00
Matt Joiner f455ee3868 Remove redundant replenishConnRequests when receiving unchoke 2014-05-23 21:02:42 +10:00
Matt Joiner dfde2a3497 dat new-world-style panic 2014-05-23 21:02:11 +10:00
Matt Joiner 91bf870eb1 Fix a race checking bytes left when announcing 2014-05-23 21:01:35 +10:00
Matt Joiner 898c4f4e4f Store request heat in the download strategy
This avoids recalculating it for every FillRequest
2014-05-23 21:01:05 +10:00
Matt Joiner a3bf8424a1 torrent.go: Alias peer_protocol as pp 2014-05-23 20:58:11 +10:00
Matt Joiner 51cbfdf676 Put interface assertion next to the asserted type 2014-05-23 00:38:07 +10:00
Matt Joiner 763e387c62 TorrentReadAt shouldn't care about verification state 2014-05-23 00:37:36 +10:00
Matt Joiner dd30d144ae Avoid rebuffering in peer_protocol.Decode 2014-05-23 00:36:47 +10:00
Matt Joiner 65fa317244 Some minor fiddling to announcing in the client 2014-05-23 00:35:24 +10:00