Commit Graph

603 Commits

Author SHA1 Message Date
Matt Joiner fe991128ed Rework connection stat reconciliation with Torrent and refactor doppleganger handling 2018-02-02 19:07:20 +11:00
Matt Joiner b0c1f99509 Merge a bunch of stuff into ConnStats and refactor connection.upload 2018-02-02 19:04:56 +11:00
Matt Joiner 97ffe39561 Move sendChunk onto connection 2018-02-02 13:26:04 +11:00
Matt Joiner 1a7708b484 sortimports 2018-01-31 16:42:40 +11:00
Matt Joiner 77806c1f49 More development of the new logging interface 2018-01-29 18:22:21 +11:00
Matt Joiner 53e32ca9dd Start using new log package 2018-01-28 16:07:11 +11:00
Matt Joiner e08d11a4b9 Update Client.newConnection with changed rateLimitedReader interface 2018-01-28 15:42:37 +11:00
Matt Joiner 51b3374015 Add very tentative UPnP NAT traversal
Relates to #230
2018-01-25 13:14:20 +11:00
Matt Joiner 9285470cc6 Improve some log messages 2018-01-25 13:10:52 +11:00
Matt Joiner 56109b387d Formatting and comments 2018-01-06 16:37:40 +11:00
Matt Joiner e13b0eccbf Make peerID a public type
Wanted it applied to Client Status output
2018-01-06 15:50:45 +11:00
Matt Joiner c44ee5fec4 Use peerID type more, and make its Stringer output nicer 2018-01-06 12:34:31 +11:00
Matt Joiner 8f7720edb2 Merge commit '6ab65a49a8a72dea1a28968b2ab42a85fd4566ec'
# Conflicts:
#	config.go
2017-11-08 20:23:15 +11:00
Matt Joiner 3aa1e8f3ef Add a test for behaviour after getting metadata_size and before GotInfo
#208
2017-11-08 19:31:10 +11:00
Matt Joiner 8712cc25d0 Make Client.PeerID return [20]byte 2017-11-08 19:28:37 +11:00
Matt Joiner 7eb62eec0d Move some code around 2017-11-08 15:00:18 +11:00
themihai 6ab65a49a8 feat(config): Allows the torrent client to customise the client identity and connection config 2017-11-07 20:14:13 +02:00
Matt Joiner 9757f04cf8 Apply megacheck to torrent package 2017-11-07 16:11:59 +11:00
Matt Joiner 82093937d5 Ignore expected error 2017-11-06 14:01:07 +11:00
Matt Joiner 6aad8041ab Implement new request strategy
The new strategy, 2, has the fastest connection download by priority in order, and all other pieces stick to a randomized ordering that's stable per connection.
2017-09-23 15:25:47 +10:00
Matt Joiner bb53c97d38 Move uploading to the connection writer 2017-09-18 12:09:08 +10:00
Matt Joiner ed0fa62340 Comment and formatting 2017-09-17 00:45:12 +10:00
Matt Joiner b39df82fbc Include peer data with half open connections 2017-09-15 19:10:09 +10:00
Matt Joiner 846ac2d33e Herp 2017-09-15 12:56:54 +10:00
Matt Joiner d4576a56d9 Add some expvars to track uTP/TCP and PHE fallbacks for outgoing connections 2017-09-15 12:56:15 +10:00
Matt Joiner 881f1a7e35 Support plaintext crypto method for protocol header encryption 2017-09-13 18:20:20 +10:00
Matt Joiner 110764480e Avoid triggering writer cond where possible 2017-09-01 12:09:41 +10:00
Matt Joiner 13e79039f2 Generate requests, cancels and interest state in the connection writer 2017-08-31 23:48:52 +10:00
Matt Joiner 986b9093a0 Make connection.writer pull from a buffer 2017-08-31 16:26:45 +10:00
Matt Joiner 0388ec1eee Synchronize Torrent.Info 2017-08-29 15:16:53 +10:00
Matt Joiner a8a1ea755d Remove unused functions 2017-08-26 13:23:04 +10:00
Matt Joiner 401974dd8d dht.ServerConfig.StartingNodes is now a function
Additionally cmd/torrentfs uses the global bootstrap nodes for its DHT. Aids with https://github.com/anacrolix/torrent/issues/180
2017-08-25 16:28:27 +10:00
Matt Joiner 97cb41a5c9 Provide default starting nodes to DHT if default torrent client config is used
https://github.com/anacrolix/torrent/issues/178
2017-08-18 11:14:28 +10:00
Matt Joiner 76c60ffa77 Try a state-delta function for updating request state
Also adds Torrent.networkingEnabled, though it isn't yet useful.
2017-08-18 01:51:02 +10:00
Matt Joiner 170bb72c34 Augment dialed connection timeouts with context.Context
Works toward a dial timeout for half open connections. https://github.com/anacrolix/torrent/issues/169
2017-08-16 17:05:05 +10:00
Matt Joiner 9bec8f6a95 Use net.Dialer for TCP 2017-08-16 15:48:30 +10:00
Matt Joiner 8317417910 Use DialContext instead of DialTimeout with utp 2017-08-16 15:35:17 +10:00
Matt Joiner 2d59d48015 Some tidying in Client.dialFirst 2017-08-16 10:32:25 +10:00
Matt Joiner 5099d8e33f DHT bootstrap is not asynchronous 2017-08-10 11:18:48 +10:00
Matt Joiner 2624281842 Changes for dht-cleanup 2017-07-21 00:40:49 +10:00
mlmhl 6286c11bed Do not add nodes if dht is disabled 2017-06-29 14:28:07 +08:00
Matt Joiner ae8b03d586 Use go-libutp if cgo is enabled 2017-06-16 18:08:24 +10:00
Matt Joiner 49648b9ae1 Close implicit Client default storage on Client.Close
Fixes #158
2017-06-01 22:57:08 +10:00
luffyma(马林) d8023a5e39 bug fix: race condition between outgoing connection and incoming connection 2017-05-10 18:31:19 +08:00
Matt Joiner 40b96d0e4e Avoid allocating skeys for receiving encrypted handshakes 2017-04-04 18:41:08 +10:00
Chris Walker 9d96cd659f fix `Spec.Storage` and allow per-torrent dir
`TorrentSpec.Storage` was not honored when calling `Client.AddTorrentSpec`
and the configured `cfg.DefaultStorage` was always used. Now if you construct
your `TorrentSpec` you can specify any `StorageImpl`

Also, the most common use case for custom storage being per-torrent paths for
FileStorage, this adds a `pathMaker` function to the File implementation that
allows customization, along with the default (always use base path) and my use
case (which seemed common enough from the Gitter chat) which is infohash based
subdirectories.

All Public methods have not changed signature, but 1 private method did, hence
the test update.
2017-03-16 14:40:21 +00:00
Matt Joiner 9cf09dba8a Remove unused funcs and idents 2017-01-01 11:03:02 +11:00
Matt Joiner 186b5073d2 Move method queuePieceCheck 2017-01-01 11:02:37 +11:00
Matt Joiner d48c7c8e36 sort imports 2017-01-01 11:01:41 +11:00
Matt Joiner b68d7cd08e dht/… moved to github.com/anacrolix/dht 2016-12-14 11:43:37 +11:00