Commit Graph

88 Commits

Author SHA1 Message Date
Matt Joiner 28455fb817 Speed up stuff relating to checking piece completion 2015-03-18 18:34:35 +11:00
Matt Joiner 29238ff23f Change the interface to add torrents to a Client 2015-03-18 18:32:31 +11:00
Matt Joiner a7dddd9be6 Rewrite handshaking and connection management 2015-03-18 18:28:13 +11:00
Matt Joiner 203da0aab0 Tidy up extension bytes handling; don't close conn from handshake writer; force protocol encryption for now 2015-03-13 06:21:13 +11:00
Matt Joiner e85b7e228b Add support for Fast Extension 2015-03-12 20:06:23 +11:00
Matt Joiner e6fbde0dc6 Rework piece completion 2015-03-11 02:41:21 +11:00
Matt Joiner 914bc12bb6 Harmless improvements 2015-03-11 02:39:01 +11:00
Matt Joiner d7695c4585 Change torrent.Name() 2015-03-09 17:35:29 +11:00
Matt Joiner ad6ac3f2cd More cleaning of public interface 2015-03-08 17:28:14 +11:00
Matt Joiner 3e753bb8ad Change up the data storage interfaces a bit 2015-03-07 17:11:45 +11:00
Matt Joiner 779f4d3b97 Implement Handle.ReadAt 2015-03-04 13:06:33 +11:00
Matt Joiner 4eb70e0673 Support opening handles to Torrent and File 2015-03-01 14:32:54 +11:00
Matt Joiner a2d69b4931 Make blob data stateful 2015-02-27 12:45:55 +11:00
Matt Joiner 315c703456 Rename TorrentData->Data 2015-02-27 01:43:37 +11:00
Matt Joiner 22746dda23 Ditch the intermediate MetaInfo type 2015-02-26 22:17:58 +11:00
Matt Joiner c75dbccea3 Hide a whole bunch of functions seen via torrent 2015-02-25 15:42:47 +11:00
Matt Joiner 0eb418360b Allow configuring Client torrent data opener, config dir, disabling metainfo cache, and prune with a timer instead of goroutine 2015-02-25 14:48:39 +11:00
Matt Joiner 9fb7934d0c Comments 2015-02-25 01:34:57 +11:00
Matt Joiner 4b1b009049 Encapsulate torrent data, and provide os.File and mmap-based implementations 2015-02-10 00:14:52 +11:00
Matt Joiner 029d6939f8 Hide some methods that shouldn't be public 2015-02-10 00:12:29 +11:00
Matt Joiner 4ca6b4e2c7 Fix some stuff Rob Clifford broke through stress testing 2015-02-06 14:54:59 +11:00
Matt Joiner 89fc37d46f Expose PieceStatusCharSequence 2015-01-26 20:52:59 +11:00
Matt Joiner 78caa4533b Scale readahead with unchoked connections 2015-01-11 00:16:57 +11:00
Matt Joiner d54c5ddf24 Remove a bunch of dead code 2014-12-28 12:51:09 +11:00
Matt Joiner 3a221dc57d Rip out the pieces by bytes left and responsive download strategy stuff 2014-12-26 17:15:17 +11:00
Matt Joiner 262f045fd1 Fixes due to not pending chunk specs prematurely 2014-12-09 00:22:05 -06:00
Matt Joiner a081ad63d9 Save memory by not pending chunks prematurely 2014-12-08 21:57:13 -06:00
Matt Joiner bacb1af357 Write piece status as counts of contiguous identical states 2014-12-06 21:16:02 -06:00
Matt Joiner b6ae4caa6a Set priorities ahead of the current read position 2014-12-05 00:56:28 -06:00
Matt Joiner ac1afa19b8 mmap_span: Avoid allocating the span slice on every use 2014-12-05 00:54:55 -06:00
Matt Joiner 91c2c1f5c7 Piece priorities, torrent read interface and many fixes 2014-12-03 01:07:50 -06:00
Matt Joiner a87e753572 When metadata arrives, we also need to init request ordering 2014-12-02 18:42:22 -06:00
Matt Joiner c41919807e Reuse the info bytes when marshalling torrent metainfo 2014-12-01 23:33:38 -06:00
Matt Joiner 5c8de6dd7c Skip mapping files with length 0 2014-12-01 19:13:08 -06:00
Matt Joiner c7283182b6 Trivial 2014-12-01 16:40:18 -06:00
Matt Joiner fb2b626175 Don't send constructed MetaInfo down a channel when it's available, build it on demand 2014-12-01 16:37:40 -06:00
Matt Joiner cb75f49bf7 torrent.String, if the name isn't available, use the info hash 2014-12-01 14:29:30 -06:00
Matt Joiner db0232e03f Not ever hashed takes higher priority than partially downloaded 2014-12-01 03:28:25 -06:00
Matt Joiner 06aff91f8c Don't open new connections or announce when new connections aren't wanted 2014-11-21 00:09:55 -06:00
Matt Joiner 9c37205dde Include trackers in WriteStatus 2014-11-21 00:07:42 -06:00
Matt Joiner 06e240e198 Expose a wrapped metainfo type with helper methods 2014-11-18 14:36:27 -06:00
Matt Joiner e37d369864 Move half-open tracking into per-torrent 2014-11-16 13:30:44 -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 e30f2777fc Missing torrent functions 2014-09-14 04:06:17 +10:00
Matt Joiner 97ae59dfaf Improve the data waiter system 2014-09-14 03:50:15 +10:00
Matt Joiner 0217bc6163 Improvements to written status 2014-09-14 03:43:11 +10:00
Matt Joiner dcc3de7a70 New worst conn algorithm that incorporates useful/unwanted chunk download rates 2014-09-14 03:40:35 +10:00
Matt Joiner ced8a7b78f New worst conns algorithm that takes into account connection useful chunk hit rate 2014-09-11 20:31:31 +10:00
Matt Joiner ed08bd2837 Introduce socket/torrent limits, work in progress 2014-08-28 10:06:36 +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